コンパイルされた実行ファイルにDLLを埋め込む 質問する

コンパイルされた実行ファイルにDLLを埋め込む 質問する

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

通常、DLL を外部に残して、セットアップ プログラムですべてを処理しても問題ありませんが、職場で何人かの人からこのことを尋ねられたことがあり、正直なところわかりません。

ベストアンサー1

ぜひ使用することをお勧めしますコスチュラ・フォディ- アセンブリにリソースを埋め込む最も簡単で優れた方法です。NuGet パッケージとして利用できます。

Install-Package Costura.Fody

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

Install-CleanReferencesTarget

また、pdb を含めるか、特定のアセンブリを除外するか、アセンブリをその場で抽出するかを指定することもできます。私の知る限り、アンマネージ アセンブリもサポートされています。

アップデート

現在、一部の人々は追加しようとしていますDNXのサポート

アップデート2

最新の Fody バージョンでは、MSBuild 16 (Visual Studio 2019) が必要です。Fody バージョン 4.2.1 では MSBuild 15 が使用できます。(参照:Fody は MSBuild 16 以降でのみサポートされます。現在のバージョン: 15

おすすめ記事