0

同様の質問で探している解決策を見つけることができないようですが、それは私の検索スキルが不足しているためかもしれません。

いずれにせよusing System.Runtime.InteropServices;、ダウンロードした .zip ファイルを解凍するために使用する C# プロジェクトに があります。

私の問題は次のことから生じます: 私はインストーラーが嫌いです... したがってInterop.Shell32.dll、プロジェクトの \bin\Debug フォルダーにある .exe にファイルを含める方法が必要です。

したがって、Interop.Shell32.dll をプログラムのパスに追加するインストーラーの必要性を回避し、インストーラーを使用しない場合は .exe と共に追加のファイルをダウンロードする必要性を回避します。

私がそうするための最良/最も効率的な方法は何ですか? (できれば、余分なコードをプログラムに含める必要はありません)

4

2 に答える 2

1

便利なツールがいくつかあります。何が求められているのか正確にはわからないので、私が使用しているツール/アプローチの小さなリストを提供します.

  1. プロジェクト出力や外部アセンブリ/PIA など、複数のマネージド アセンブリをマージするためのILMerge 。マージされる PIA/アセンブリがそのまま配布可能であることを確認するか、#3 を参照してください。

  2. マネージド アセンブリの外部要件となる可能性がある非マネージドDLL を含む "外部データ" を含めるための埋め込みリソース。これらの非マネージDLL/COM ライブラリは、抽出後に実行時にバインド/ロードできます。

  3. 統合されたランチャー/インストーラーを作成するためのdotNetInstaller (これはブートストラップであり、埋め込みリソースを提供できます)。これは、通常の MSI (VS Setup Project) インストーラーと組み合わせて使用​​して、公式の配布可能なパッケージのインストールなどの前提条件を処理したり、単に実行可能ファイルを起動するために使用したりできます (前提条件以外の「インストーラー」はありません)。

于 2013-08-30T21:05:47.163 に答える
1

ILMergeを使用できます。Microsoft の Web ページから取得:

ILMerge は、複数の .NET アセンブリを単一の .NET アセンブリにマージするためのユーティリティです。実行可能ファイルと DLL で同様に機能し、出力の処理と形式を制御するためのいくつかのオプションが付属しています。

于 2013-08-30T21:03:24.530 に答える