25

同じ dll の 2 つの異なるバージョンを比較し、違いを抽出する適切なツールを知っている人はいますか?

ありがとう

4

6 に答える 6

31

JetBrainsの dotPeekも使用できます。また、無料です。

  • dotPeek でアセンブリを開きます
  • アセンブリを選択
  • ファイル --> プロジェクトにエクスポート
  • ディスク上の場所を選択する

比較するアセンブリに対して上記の手順を繰り返し、差分ツールで 2 つのフォルダーを開きます。私はWinMergeを使用しました。

ほとんどのファイルに違いがあることに気付くでしょう。これは、ファイルの上部にこのようにコメントがあるためです

// MVID: {some guid here}

また

// Assembly location: {some path here}

WinMerge でフィルタを作成して無視することができます

  • ツール --> フィルタ...
  • 「ラインフィルター」タブに移動
  • 次のフィルタを追加します^// MVID:
  • 次のフィルターを追加します (オプション)^// Assembly location:
  • 新しい正規表現の横にあるチェックボックスをオンにします
  • 「回線フィルターを有効にする」チェックボックスをオンにします

変更を承認すると、フォルダーが再スキャンされ、そのコメントで始まる行は無視されます。これで、関心のある変更のみが表示されるはずです。

于 2014-03-04T16:58:15.190 に答える
16

Reflector にはDiffツールがあります。注: Reflector は有料ソフトウェアになりました。

注: Diff ツールは使用できなくなりました。Softpediaからダウンロードして、Reflector の古いバージョン (2010 年頃から) で使用することができます。それ以降のバージョンでは、もう機能しません。

于 2009-02-26T14:55:40.463 に答える
4

まず分解して比較してみませんか?

于 2009-02-26T14:54:58.937 に答える
4

http://www.red-gate.com/products/reflector/ を確認してください

于 2009-02-26T14:57:01.863 に答える
4

.NET Reflector (無料版で十分です) を使用して dll を開き、右クリックして別のディレクトリにエクスポートすることを選択します。

次に、ExamDiff Proを使用してディレクトリを比較します (30 日間の無料トライアルを利用できます)。サブフォルダーをナビゲートし、必要に応じて各ファイルを新しい比較ウィンドウで開くことができます (ExamDiff Pro ウィンドウでダブルクリックするだけです)。 素晴らしい作品!

ExamDiff Pro には、.dll ファイルと .exe ファイルを直接比較する Dump PE32 プラグインもあります。これは、ヘッダーの変更を調べたり、バイナリの違いにフラグを立てたりするのに役立ちますが、逆コンパイルはしません (そのため、上記の Reflector メソッドを使用してください)。

于 2010-12-17T20:26:52.643 に答える
0

Microsoft BCL チームには、これを行うためのツールがあります。これは LibCheck と呼ばれ、ここで見つけることができます。

http://blogs.msdn.com/b/bclteam/archive/2005/03/21/400123.aspx

これは古いツールであり、新しいバージョンのランタイムを使用してソースを再コンパイルする必要がありましたが、うまく機能し、変更に関する HTML レポートを提供します。

于 2014-03-17T09:41:33.883 に答える