.NETアセンブリをコンパイルするために比較するのに良いプログラムはありますか?
たとえば、HelloWorld.dll(1.0.0.0)とHelloWorld.dll(2.0.0.0)があり、違いを比較したいのですが、どうすればよいですか?
.NET Reflectorを使用して、AssemblyDiffプラグインを使用できることはわかっています。これを行うための他の良いツールはありますか?
.NETアセンブリをコンパイルするために比較するのに良いプログラムはありますか?
たとえば、HelloWorld.dll(1.0.0.0)とHelloWorld.dll(2.0.0.0)があり、違いを比較したいのですが、どうすればよいですか?
.NET Reflectorを使用して、AssemblyDiffプラグインを使用できることはわかっています。これを行うための他の良いツールはありますか?
商業:
無料:
Beyond Compare (商用) などの既存の比較ツールは、特別な構成によってこれを行うことができます。Beyond Compare でこれを行う方法は次のとおりです。
*.exe
。*.dll
ildasm
て追加します %s /OUT:%t /NOBAR
(例: C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ildasm.exe %s /OUT:%t /NOBAR
)exe
し、比較する 2 つのファイルを開くと、ilasm
自動的に逆コンパイルされるはずです。この新しい形式にシンタックス ハイライトを追加することもできます。シンタックス ファイルを送信して共有できるようにする予定です。
ふたつのやり方。
ILDASMを使用して、従来のツールと比較することができます。
または、NDependsを使用することもできますが、その機能にはコストがかかります。
[Piece to C#bloaters ..]
同じバージョンの同じ DLL の 2 つのリビジョンを比較する必要がありました (小さな修正プログラムを実装し、DLL を運用環境にデプロイする必要がありましたが、他の変更がコードに漏れていないことを確認したかったのです)。理想的には、Assemby Diff アドインで違いを表示してもらいたいのですが、機能しません (DLL をそれ自体と比較していると見なされます)。だからこれは私がやったことです:
少しぎこちないですが、うまくいくようです。ただし、Assembly Diff アドインが機能することを願っています。
更新: Assembly Diff アドインの最新バージョンは、同じアセンブリの 2 つのバージョンを比較する問題を修正する予定です。試してみる。
ツールNDependは、.NET コードの差分を処理するための多くの機能を提供します。免責事項: 私はツールの開発者の 1 人です。
変更による検索パネルは、アセンブリ コードの差分を閲覧するためのものです。次の点に注意してください。
スクリーンショットでは、差分を参照するためにCQLinq コード クエリが生成されていることにも注意してください。
from m in Application.Methods
where m.CodeWasChanged()
select new { m, m.NbLinesOfCode }
他の多くのデフォルト diff クエリとルールがデフォルトで提案されており、.NET コードの diff をスマートな方法でブラウズできます。
もう 1 つのオプションは、Microsoft のLibCheckです。
パブリック API の差分を取得するためのかなり古いコンソール ツールです。デバッグして最新の .net バージョンにリターゲットしないと実行できませんでした。ただし、非常に明確な出力が得られたので、後で使用します。
スクリーンショット付きの記事はこちら。
Java には素晴らしいものがあります: Semantic Diff Utilities