C#アプリケーションを再コンパイルするたびに、異なるMD5シグネチャを持つEXEが生成されます。私たちは、同じマシンで、分単位で再コンパイルしています。同じソースコードで同じ出力が得られないのはなぜですか?これを修正する方法はありますか?C#が同じソースコードに対して異なるEXEを生成するのはなぜですか?
答えて
「だから、すべてのアセンブリがあります。PDB 完全にランダムなGUIDがすべてのコンパイルを生成したと思われるもの
- Aタイムスタンプを、次のVisual Studioビルドでのみ生成されるアセンブリのビルドを示すカウンタ。
から:
良い答え。ありがとう! – Gili
私はこれまでにこれらのケースを解読しなければならなかったので、ちょうどDateTimeスタンプタイプの変更(それは推測です)のようです。両方のアセンブリをdiffツールの下に置くと、PE内の非常に少数の行しか変更されていないことがわかります。少量のコードを変更してアセンブリを比較すると、大幅に大きな差異が見えます。ここで
は表面的なものから、「本物」の違いを識別するためのツールを研究しながら、私は開いた質問です:
私は鍵が "分離れている"と思う。 EXE内にタイムスタンプがある場合は、MD5シグネチャが変更されます。
これは推測ですか? – Gili
私はC#コンパイラによって生成されたEXEを調べたことはありません。私はC#に1年以上触れていません。しかし、それはすべてをうまく説明し、それは理にかなっています。 –
ほとんどの場合、アセンブリのバージョン番号には*がいくつかあります。これにより、ビルド時にアセンブリのバージョン番号が自動的にインクリメントされ、出力されたアセンブリに目に見える差異が発生します。したがって、別のMD5チェックサム。
バージョン番号を定数アセンブリバージョンに切り替え、問題が修正されているかどうかを確認してください。
次の2つの.exesに(これは私のパスはC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin
ある)Ildasm.exeを実行してみてください可能性があります。
次に、ヘッダーの元のビューをダンプし、差分ツールと比較します。それでも違いがなければ、より高度なツールが必要なPEヘッダがあるかもしれません。 IldasmはあなたにPEヘッダーサイズとそれに関する他の統計を提供します。
/sourceと/ outフラグの使用を強くお勧めします。 –
- 1. sizeofがCの同じ文字列に対して異なる値を返すのはなぜですか?
- 2. COMインターフェイスが同じ呼び出しメソッドに対して異なる値を返すのはなぜですか?
- 3. R glm異なるタイプの同じカテゴリ変数に対して異なるp値を生成する
- 4. CC_SHA256は異なる入力に対して同じ出力を生成
- 5. phpassが同じ入力文字列に対して異なるハッシュを返すのはなぜですか?
- 6. 同じ例外に対して異なるエラーコードが表示されるのはなぜですか?
- 7. なぜ私は異なる列に対して同じ結果を得ているのですか?
- 8. なぜPBEは異なる塩と繰り返し回数で同じ鍵を生成するのですか?
- 9. なぜgensim Doc2Vecは同じ文章に対して私に異なるベクトルを与えるのですか?
- 10. 私はwindbgでシンボルパスを設定しましたが、windbgが同じexeに対して同じシンボルをダウンロードするたびになぜですか?
- 11. なぜ同じ結果が異なるのですか? PHP EがC#の
- 12. なぜAVAssetトラックは同じビデオファイルに対してtimeRangeが異なるのですか?
- 13. 同じバッチで異なるバッチサイズは異なる結果を生成する
- 14. 同じファイル、同じファイルサイズだが2つの異なるメモリサイズ、なぜですか?
- 15. URLは同じですがコンテンツが異なるのはなぜですか?
- 16. delがパラメータに対してUnboundLocalErrorを生成するのはなぜですか?
- 17. Bcryptは同じ入力に対して異なるハッシュを生成しますか?
- 18. 異なるマシン上で同じC#ソースコードから反復可能なビルド
- 19. rownamesを同じものに変更すると、同じデータフレームが異なるのはなぜですか?
- 20. 同じバイナリが異なるmd5を生成する
- 21. 異なるディレクトリにある同じファイルをコンパイルすると、結果が異なるのはなぜですか?
- 22. Digesterが同じメッセージ、コード、繰り返しに対して異なるハッシュコードを生成している理由
- 23. なぜglGetAttribLocationは2つの異なる属性に対して同じ値を返しますか?
- 24. YACCで生成されたパーサーが同じ入力に対して異なる出力を返す
- 25. 同じ幅と高さでも、異なる要素が異なるサイズになるのはなぜですか?
- 26. なぜサイトコアープレゼンテーションコンポーネントがドメインに応じて異なる出力を生成するのでしょうか?
- 27. 異なるヘッダーの名前が同じであるのはなぜですか?
- 28. 同じ入力に対して異なる式を返すSympify
- 29. なぜCOUNT(*)は同じフィルタに対してSELECTと異なる番号を返しますか?
- 30. 幅が同じでもラベルが異なるのはなぜですか?
あなたは既に持っていると思いますが... IL DASMでマニフェストをチェックしましたか? – yeyeyerman