4

私のアプリケーションでは、いくつかのファイルを圧縮および解凍する必要があります。そのために、私はDotNet Zipライブラリ(Ionic.Zip.dll-- DotNet Zip Lib)を使用しました

すべて正常に動作しますが、ファイルのEXEを取得して別のフォルダーから実行しようとすると、実行に失敗します。Ionic.Zip.dllをアプリケーションが存在するフォルダーに保持する必要があります。抜け道はありますか?文字列が添付されていないEXEファイルが欲しいだけです。またはDotNetZipLib以外のオプションはありますか。

4

4 に答える 4

12

別のアセンブリ(サードパーティのDLLなど)への参照をC#プロジェクトに追加すると、コンパイラはそのアセンブリの内容をEXEに追加しません。プログラムの実行時にそのDLLをロードする必要があることを示すリンクを作成するだけです。.NETプログラムをEXEファイルと必要なDLLファイルとして配布するのはごく普通のことです。

ただし、必要に応じて、それらを1つのEXEファイルに結合できます。複数の.NETアセンブリを1つにマージできるいくつかの異なるツールがあります。ILMergeまたは.NETZをご覧ください

于 2010-10-22T07:04:17.300 に答える
2

外部依存関係のないこの純粋なC#ライブラリを見てください。

アプリケーションに含めて、単一のEXEに直接コンパイルできます。外部のZIPライブラリは必要ありません。

于 2010-10-22T07:27:42.197 に答える
1

そのために.netを使用するか、Packaging名前空間を確認するか、gzip形式を使用できる場合はそのクラスも指定します。これを使用して、プロジェクトから依存関係を削除します。

于 2010-10-22T07:09:09.190 に答える
0

オープンソースプロジェクトの場合は、「dll」への参照を追加せずに、プロジェクトにソースコードを含めることができます。

于 2010-10-22T07:05:03.473 に答える