我遇到了这样的问题:
http://svn.haxx.se/tsvnusers/archive-2008-07/1051.shtml
除了该应用程序是我们自己的(对不起,不会给你保密的细节)。尽管如此,SideBySide 的缺陷并不是我们的错。
无论如何,版本 X 有效,版本 Y 在一开始就轰炸了。我面临着遍历一堆目录和多达 100 个 dll 文件的任务,以找出可能存在的差异。
看起来两个 dll 文件之间存在冲突,它们加载了另一个 dll 文件的两个不同版本。
感谢您对 Python / 其他片段的帮助,以从给定文件中提取清单。谢谢!
编辑:顺便说一句,我确实找到了一种方法:我可以运行以下命令(mt.exe 是 Visual Studio 2008 工具的一部分)mt.exe -inputresource:MyFile.dll;#2 -out:MyFile.dll.extracted_manifest.txt
:.
这是一个好的开始,但有两个问题:
- 可以嵌入多个清单(在我的理解中):#1、#2、#3,... - 我不知道哪些清单和多少提前。最大值是多少?
- 如果我猜测并使用该参数运行 mt.exe,我会失败。处理这些错误会使脚本变长。
有人可以对此有所了解吗?
另一个编辑:啊,没关系!1 用于 .exe,2 用于 dll,仅此而已。我想我现在知道该怎么做了。但是,如果您有比我更好的解决方案,或者如果您从 Python / 其他脚本自动调用 mt.exe,那么请随时分享。