C# プロジェクトをクリーン ビルドすると、生成された dll が、以前にビルドしたもの (個別に保存したもの) とは異なります。コードの変更は行われず、クリーンアップして再構築するだけです。
Diff は、DLL 内の一部のバイトに変更があることを示しています。最初の部分と最後の部分にいくつかありますが、これらが何を表しているのかわかりません。なぜこれが起こっているのか、それを防ぐ方法について洞察を持っている人はいますか?
これは、Visual Studio 2005 / WinForms を使用しています。
更新:自動バージョンインクリメントを使用しないか、アセンブリに署名します。それがある種のタイムスタンプである場合、VSがそれを書き込まないようにするにはどうすればよいですか?
更新: Ildasm/diff を調べたところ、次の項目が異なるようです。
- ファイルの先頭にある PE ヘッダーの 2 バイト。
- <PrivateImplementationDetails>{ guid } セクション
- 末尾付近の文字列テーブルの不可解な部分 (なぜ文字列を変更しなかったのか不思議です)
- ファイルの末尾にあるアセンブリ情報の一部。
可能であれば、これらのいずれかを排除する方法がわかりません...