9

ファイル間のデルタを生成するために .NET 環境で圧縮を実行できた人はいますか? 可能であれば、おそらく msdelta.dll の機能を使用して、この機能を使用したいと思います。また、他のライブラリ (できればオープン ソース) を使用してデルタを生成する方法にも興味があります。

4

2 に答える 2

8

これがあまり恥知らずなプラグインではないことを願っていますが、私自身の目的のために、PatchAPIMSDeltaの両方のラッパー ライブラリを作成しました。

このライブラリは、MS-PL および DBAD-PL でデュアル ライセンスが付与されており、GitHubで入手できます。

NuGet でプロジェクトを公開するという考えを楽しんでいますが、現時点では、ソースをダウンロードして、デルタの作成と適用の両方を行うことができます。

デルタの作成は一目瞭然です。

var compression = new MsDeltaCompression(); /* or PatchApiCompression(); */
compression.CreateDelta(sourcePath, destinationPath, deltaPath);

そして、同様に一目瞭然 (うまくいけば) は、デルタを適用することです:

var compression = new MsDeltaCompression(); /* or PatchApiCompression(); */
compression.ApplyDelta(deltaPath, sourcePath, destinationPath);

x86 でテスト済みですが、P/Invoke 署名は x64 と ia64 で同等に有効である必要があります。

PatchAPIとMSDeltaのどちらを使用しているか決めていない場合、私のプロジェクトではどちらを使用すべきかを (簡単に) 提案しようとしますが、それ以外の場合、Microsoft の Delta Compression のドキュメントにはMSDeltaと PatchAPIについて次のように書かれていますREADME.md

MSDelta ... は、他の方法で生成される圧縮ファイルよりもはるかに小さい圧縮ファイルを作成できます。Windows Vista に同梱されているのは、PatchAPI として以前にリリースされた (引き続きサポートされる) テクノロジの次世代です。

鉱山を強調します。

于 2013-02-10T07:13:55.757 に答える