114

要件:

  • 無料、できればオープンソース
  • .NET マネージ言語の 1 つに実装されている

Google はこれらを見つけました:

編集:

アプリは使用せず、ライブラリのみを使用してください。

4

4 に答える 4

92

Google の Diff/Patch/Match を使用する COM コンポーネントを取得できます。.NET から動作します。

2010 年 10 月 17 日更新: Google Diff/Patch/Merge コードが C# に移植されました。COM コンポーネントは引き続き動作しますが、.NET を使用している場合は、.NET ポートを直接使用する必要があります。

于 2009-05-14T16:42:58.053 に答える
23

Codeproject の "Generic - Reusable Diff Algorithm in C#" は、diff/patch/merge の .NET エンジンとして見つけることができる最高のものだと思います。私はそれを使って自分でプロジェクトを作成しましたが、ほとんどのシナリオで私のニーズに合っています。アルゴリズムによってパッチ ファイルが必要以上に大きくなった最悪のシナリオが 1 つまたは 2 つあります。しかし、ほとんどの場合、私にとっては問題なく動作します (サイズが 30 MB を超えるテキストファイル)。

私は現在、別の Codeproject-Project をテストしています。ここで見つけることができます: http://www.codeproject.com/KB/applications/patch.aspx パッチに Microsoft の DLL を使用しているので、興味深いものです。しかし、これらの DLL は管理されておらず、このプロジェクトはそのためのある種のラッパーにすぎません。しかし、多分それはあなたを助けることができます

編集: 別のプロジェクトDiffPlexを見つけました: http://diffplex.codeplex.com/ これは、.NET Diffing Library と Silverlight および HTML diff ビューアーの両方を組み合わせたものですそこに記載されているように、DiffPlex は CodePlex がファイルの差分を生成するために利用するライブラリです。

于 2008-09-26T09:32:17.383 に答える
5

これまでの回答はどれも (おそらく GitSharp リファレンスを除いて) 3 方向マージを扱っていないため、誰かに役立つ場合に備えて、最近、Tony Garnock-Jones の javascript diff3 実装を移植しました ( シンクロトロンプロジェクトから、Hunt と McIlroy 1976 に基づいています)。 C#に。

これは diff および 3 方向マージ メソッドの単純化された単一ファイル ポートですが、標準アルゴリズムであり、これまでのところ非常にうまく機能しています: https://gist.github.com/2633407

于 2012-05-21T13:11:06.140 に答える