1. ホーム
  2. c#

[解決済み] コンパイル済み実行ファイルにDLLを埋め込む

2022-03-14 21:21:50

質問

コンパイル済みのC#実行ファイルに既存のDLLを埋め込むことは可能ですか(配布するファイルが1つになるように)?もし可能であれば、どのようにそれを行うのでしょうか?

普段は、DLLを外に出しておいて、セットアップ・プログラムがすべてを処理するのがクールなのですが、職場で何人かに聞かれたので、正直言ってよくわかりません。

どのように解決するのですか?

を使用することを強くお勧めします。 コストラ.フォディ - は、アセンブリにリソースを埋め込むための最も簡単で良い方法です。NuGetパッケージとして提供されています。

Install-Package Costura.Fody

プロジェクトに追加した後、出力ディレクトリにコピーされたすべての参照を、自動的にあなたの メイン アセンブリを作成します。プロジェクトにターゲットを追加することで、埋め込まれたファイルをクリーンアップすることができます。

Install-CleanReferencesTarget

また、pdbを含めるか、特定のアセンブリを除外するか、アセンブリをオンザフライで抽出するかを指定することができるようになります。私の知る限り、アンマネージド・アセンブリもサポートされています。

更新情報

現在、一部の人が DNXのサポート .

アップデート2

最新のFodyバージョンでは、MSBuild 16(つまりVisual Studio 2019)が必要です。Fodyバージョン4.2.1ではMSBuild15ができるそうです(参考。 FodyはMSBuild16以上でのみサポートされています。現在のバージョン:15 )