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