プロジェクト (asp.net、c#) を aspnet_compiler で再コンパイルすると、コードが変更されていなくても、再構築されたバイナリが (以前のビルドと比較して) 変更されます。
これは、(ビルドを区別するために) ビルドするたびに新しいモジュール バージョン ID (guid) を生成するビルドが原因であると私は理解しています。 .net アセンブリ?
上記のリンクされた質問は、プロジェクトを再構築し、バイナリを同じ変更されていないコードの以前のビルドと一致させる方法がないことを示唆しているようです..わかりました、わかりました-しかし、なぜすべてのバイナリがまったく再構築されているのですか?
ドキュメント(http://msdn.microsoft.com/en-us/library/ms229863(v=vs.80).aspx)によると、-cが引数として指定されていない限り、aspnet_compilerは実際に必要なバイナリを再構築します (コードが変更されたため)。私は誤解していますか、それとも何かが欠けていますか?
私が使用している aspnet_compiler 引数:
aspnet_compiler -f -u -fixednames -nologo -v / -p .\myproject\ .\mybuild\
この問題は、Web アプリケーション プロジェクトではなく、Web サイト プロジェクトでのみ発生することに注意してください (コンパイル方法が異なります)。また、この問題は、機能のない WebSite プロジェクトとページを作成し、ビルド間で開いたり変更したりしない場合でも発生します。
生成されたバイナリを逆コンパイルしても、違いはありません。2 つの「同一」ビルドのバイナリを比較すると、毎回バイナリの同じ部分に小さな違いが見られます。これは、ランダム ビルド GUID に関連していると思われます。ビルド間のこの変更を回避する方法は見つかりませんでした。