zoukankan      html  css  js  c++  java
  • 关于.net 对.manifest清单文件查找缓存的猜想

    问题背景:

     winform调用unity web player 插件.

     按如下操作:

     ,编译后会生成.manifest清单文件:

    通过清单内容可以看出程序在运行时是按照以上信息来查找ActiveX控件的.当吧.manifest文件删除到回收站,运行程序会报以下错误:

    "没有注册类(异常来自 HRESULT:0x80040154(REGDB_E_CLASSNOTREG))"

     说明了对清单文件(A.exe.manifest)的依赖,然后我们再把清单文件从回收站还原.发现依然报同样的错.但这个时候如果用新编译的A.exe文件替换后即可正常运行.(只是重新编译了下没做修改,但A.exe文件的MD5值变了)

    后来经过几次测试发现:在还原A.exe.manifest文件后如果不用新编译的A.exe文件替换,而修改下程序所在路径也可以正常运行.

    所以我猜想系统应该会对清单文件的查找结果进行缓存记录,并且记录了执行文件所在路径、MD5值 和是否存在清单文件(true/false).如果 路径信息或可执行文件的MD5值有一个发生变化,则会重新查找一次当前目录是否存在清单文件.

    一旦记录了不存在则下一次便不会在当前路径查找.

    有知道原理的朋友欢迎指正.

    没有困难创造困难也要上!
  • 相关阅读:
    springboot、监听器
    springboot、拦截器
    Thymeleaf模板引擎
    springboot-banner.txt
    springboot,swagger2
    springboot 热部署
    判断是否为微信环境下打开的网页
    后台接收json数据
    ios 面试题
    iOS 适配问题
  • 原文地址:https://www.cnblogs.com/tiaf/p/5853186.html
Copyright © 2011-2022 走看看