首页 > 代码库 > 关于.net 对.manifest清单文件查找缓存的猜想
关于.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值有一个发生变化,则会重新查找一次当前目录是否存在清单文件.
一旦记录了不存在则下一次便不会在当前路径查找.
有知道原理的朋友欢迎指正.
关于.net 对.manifest清单文件查找缓存的猜想
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。