Car*_*ion 3 winsxs manifest side-by-side regfreecom
我正在开发许多使用RegFree COM Activation的应用程序,除了使用使用JIT类型编译器的旧技术运行其中一个应用程序外,一切运行良好.
为了让RegFree COM正常工作,我必须为启动的可执行文件提供清单(如果我错了,请更正我),并列出我的依赖项.我所有的其他应用程序都是内部构建的,我可以完全控制我的清单(创作,如果我嵌入它,如果我将它放在并排,等等).但是这个JIT编译器(ala Java JRE)不是我的,它已经包含(嵌入)一个清单.
我已经提取了清单(使用带有-inputresource和-outfile的MT),修改它并重新嵌入它.它像预期的那样工作.但是,由于没有对此可执行文件的所有权,我担心这种操作的合法性(修改第三方的可执行文件并重新分发它!)并且希望避免不得不做这样的事情.此外,我担心在某些时候这个可执行文件可能会被第三方签名,因此修改嵌入式清单将打破签名.
有没有办法让sxs-loader首先查找另一个清单?似乎如果它找到一个嵌入式,它默认采用它(在大多数情况下是好的).我可以提供一个配置文件或任何可以跳过嵌入式清单的内容,并为我提供并行提供的一个(myExe.exe.manifest,而不是myExe.exe中的RT_MANIFEST资源)吗?
据我所知,你只能做那个系统.将其添加到注册表:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
"PreferExternalManifest"=dword:00000001
Run Code Online (Sandbox Code Playgroud)
确保通过更新可执行文件的最后修改日期来启动激活上下文缓存,否则将无法获取清单更改(重命名并重命名它似乎可行).
在Win XP上,外部清单优于内部清单,但是从Windows Server 2003 Service Pack 1开始,它们将其更改为相反.
| 归档时间: |
|
| 查看次数: |
2636 次 |
| 最近记录: |