VS2005で単純な「HelloWorld」アプリケーションを作成しました。これは単純なコンソールアプリケーションです。次の行のみが含まれています。
Console.WriteLine("Hello World");
Console.ReadLine();
変更を加えずに(再構築ボタンを押すだけで)同じコンソールアプリケーションを再構築しようとすると、微妙に異なる実行可能ファイルが表示されます。(1番目と2番目に生成された実行可能ファイルの両方からSHA-1ハッシュを生成しましたが、それは異なります!)
コード変更がないのになぜ違うのですか?実際に何が変わったのですか?比較するために16進エディターを使用しましたが、2、3の異なるバイトしか表示されませんでした。
私の最終的な質問は、「アセンブリ」が本当に変更されたかどうかをどうやって知ることができるかということだと思います。(もちろん、ファイルのバージョンやファイルのサイズなどは確認しません)
編集
これまでのところ、違いはPEヘッダー(タイムスタンプと一部のデバッグデータ)にあることを確認しました。ホイールを再発明する前に、PEヘッダーを無視する「アセンブリ比較」ツールはありますか?
ありがとう、イアン