同じ dll の 2 つの異なるバージョンを比較し、違いを抽出する適切なツールを知っている人はいますか?
ありがとう
JetBrainsの dotPeekも使用できます。また、無料です。
比較するアセンブリに対して上記の手順を繰り返し、差分ツールで 2 つのフォルダーを開きます。私はWinMergeを使用しました。
ほとんどのファイルに違いがあることに気付くでしょう。これは、ファイルの上部にこのようにコメントがあるためです
// MVID: {some guid here}
また
// Assembly location: {some path here}
WinMerge でフィルタを作成して無視することができます
^// MVID:
^// Assembly location:
変更を承認すると、フォルダーが再スキャンされ、そのコメントで始まる行は無視されます。これで、関心のある変更のみが表示されるはずです。
まず分解して比較してみませんか?
.NET Reflector (無料版で十分です) を使用して dll を開き、右クリックして別のディレクトリにエクスポートすることを選択します。
次に、ExamDiff Proを使用してディレクトリを比較します (30 日間の無料トライアルを利用できます)。サブフォルダーをナビゲートし、必要に応じて各ファイルを新しい比較ウィンドウで開くことができます (ExamDiff Pro ウィンドウでダブルクリックするだけです)。 素晴らしい作品!
ExamDiff Pro には、.dll ファイルと .exe ファイルを直接比較する Dump PE32 プラグインもあります。これは、ヘッダーの変更を調べたり、バイナリの違いにフラグを立てたりするのに役立ちますが、逆コンパイルはしません (そのため、上記の Reflector メソッドを使用してください)。
Microsoft BCL チームには、これを行うためのツールがあります。これは LibCheck と呼ばれ、ここで見つけることができます。
http://blogs.msdn.com/b/bclteam/archive/2005/03/21/400123.aspx
これは古いツールであり、新しいバージョンのランタイムを使用してソースを再コンパイルする必要がありましたが、うまく機能し、変更に関する HTML レポートを提供します。