2

.NET ベースの CMS 用のプラグインを作成しています。初めて実行するときに、javascript、CSS、および画像ファイルのツリーを解凍したいと考えています。単一の dll のみを出荷したいので、これらのディレクトリを圧縮してリソースとして保存するつもりでした。次に、プラグインが実行されると、必要なファイルが存在するかどうかを確認し、存在しない場合はそれらを解凍します。

ディレクトリ構造を設定できないという点で、リソースが「フラット」であることを私は知っています。そのため、何らかの形式のパッキングが唯一の方法です。

問題は、第一に、これは許容できることであり、第二に、これを可能にするライブラリが .NET に組み込まれているかどうかです。ビルトインを使用したい場合は、Zip ではなく GZip を使用する必要があるかもしれないと考えていますが、私が達成しようとしていることを行うための好ましい方法はありますか?


質問に何かを追加するだけです-一般的なスキームは、現在行っている.tar.gzを使用することであることを認識しています。しかし、何らかの理由で、このように機能させるには外部ライブラリをインポートする必要があるため、これは最適ではないと思います。これは、ネイティブに行うための1行または2行の方法があるほど一般的なことかもしれないと考えました。

4

1 に答える 1

2

.net http://msdn.microsoft.com/en-us/library/system.io.packaging.aspx(.net 3.0でリリースされていると思います)に付属しているファイルのグループをパッケージ化および圧縮するには、いくつかの方法があります。 http://msdn.microsoft.com/en-us/library/system.io.compression.aspx(.Net 4.5の新機能)

使用できる無料のオープンソースライブラリもいくつかあります(Sharp Zip Lib:http : //www.icsharpcode.net/opensource/sharpziplib/およびDotNetZip lib http://dotnetzip.codeplex.com/)。おそらく他にもあります。私はそれらとPackagingAPIの両方を使用しました。DotNetZipは使いやすさの点で気に入っていますが、どれでもすぐに生産性を上げることができます。

リソースを圧縮することは理にかなっています-これはスペースの賢い使用です-しかし、リソースを抽出する方法/場所に直接マップする必要はありません(リソースを抽出して書き込むためのコードを記述しているため、リソースを格納できます)より理にかなっている場合はフラット)。

于 2012-10-30T00:30:11.097 に答える