3

我假设如果 C# 代码未更改,则生成的 IL 每次构建都相同。问题是从相同代码生成的 2 个 EXE 文件没有相同的哈希值。

我想检查代码样式的更改是否会生成不同的 IL。我怎样才能做到这一点?

4

3 回答 3

4

你在做一个错误的假设。无需更改代码的重建将提供不同的二进制文件。

看:

https://stackoverflow.com/a/8927785/426894

每次运行编译器时,都应该得到不同的输出。

http://blogs.msdn.com/b/ericlippert/archive/2012/05/31/past-performance-is-no-guarantee-of-future-results.aspx

两次编译相同的 C# 程序是否保证产生相同的二进制输出?

不。

于 2012-09-14T19:43:04.080 回答
1

您可以使用ILSpy来做到这一点,这是一个开源的 .NET 程序集浏览器和反编译器。

在此处输入图像描述

于 2012-09-14T19:48:47.927 回答
1

您可以使用一些工具来反汇编 EXE 并比较它们的内容。看看这个博客http://immitev.blogspot.com.br/2008/10/ways-to-compare-net-assemblies.html

[]的

于 2012-09-14T19:49:43.330 回答