我想将一个安装的几个dll与我正在使用的另一个应用程序安装的几个dll进行比较。我需要确保它们完全相同。如何比较两个dll以确保它们具有完全相同的方法,属性,版本等?
我已经开始使用RedGate .Net Reflector,但任务变得乏味,所以我想我会给出一个镜头,看看是否有其他人曾经处于我的状态并且有快速的解决方案。
谢谢!
答案 0 :(得分:7)
我假设你不能依靠汇编版本来回答这个问题。
google上的Scott Hanselman快速搜索了{{3}}这篇帖子,指出了可以解决问题的几种工具。
答案 1 :(得分:3)
我一直使用WinMerge来完成这项任务。您甚至可以比较整个目录。当然,如果您只是需要知道它们是否相同,因为它不会向您显示任何代码。
答案 2 :(得分:3)
为什么不使用Dependency Walker?将所有导出的函数复制到文本文件中。 对其他DLL重复相同的操作。 然后diff两个文本文件。
我做了一次解决错误127,它说它无法加载DLL,因为缺少“未知”依赖项。
答案 3 :(得分:2)
编辑:对于非程序化确定提示,请参阅confusedGeeks回答: - )
我会使用SN程序集来确定“版本”,然后;
如果版本中未反映ABI,请对文件执行辅助md5sum或执行两个程序集的反射比较。即使ABI没有改变,md5sum当然会“捕获”内部/编译变化。反映ABI,虽然更复杂,可能是狗慢,但可以确定ABI的变化。
使用相同版本“覆盖”任何程序集可能只是最简单和充分的(并允许之前/之后的版本保留,直到被任何人放置到其中)。