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#プログラムを2回コンパイルすると、同じバイナリ出力が生成されることが保証されていますか?

いいえ。

于 2012-09-14T19:43:04.080 に答える
1

これは、オープンソースの.NETアセンブリブラウザおよび逆コンパイラであるILSpyを使用して実行できます。

ここに画像の説明を入力してください

于 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 に答える