我认为如果C#代码没有改变,生成的IL将与每个构建相同。问题是从同一代码生成的2个EXE文件没有相同的哈希值。
我想检查代码样式的更改是否会生成不同的IL。我怎样才能做到这一点?
答案 0 :(得分:4)
你做了一个糟糕的假设。没有代码更改的重建将提供不同的二进制文件。
见:
https://stackoverflow.com/a/8927785/426894
每次运行编译器时,都应该得到不同的输出。
和
编译同一个C#程序两次保证生成相同的 二进制输出?
没有
答案 1 :(得分:1)
您可以使用开源.NET程序集浏览器和反编译器ILSpy来执行此操作。
答案 2 :(得分:1)
您可以使用一些工具来反汇编EXE并比较它们的内容。请查看此博客http://immitev.blogspot.com.br/2008/10/ways-to-compare-net-assemblies.html
[]的