如何比较两个.NET程序集(DLL或EXE)是否相同呢?
直接比较文件内容?当然没那么简单了,这个你可以去试试,去比较一下两次Build产生的程序集,
就算内容没有改变,产生的程序集的二进制文件也是不同的。
其实,当两次Build后,程序集中,有3个地方会不同:
- MVID值会不同
- ImageBase值会不同
- 时间戳会不同
因此,要比较两个程序集是否完全相同,可以先刨除掉这三个值后,再进行比较。
以下文章中就介绍了该思路的具体实现。我也参考着实现了自己的比较工具,用于日常项目中程序集的比较。
http://www.codeproject.com/Articles/501631/Compare-two-DLL-files-programmatically-using-hash
时间: 2024-10-13 23:00:53