81026


C#で開発をしているのですが、exeとdllを1つにまとめる方法として、[ILMerge](https://github.com/dotnet/ILMerge)があるようですが、その方法は古く、Visual
Studio 2019だけでもできると思うのですが、うまくいきません。

Microsoft Q&Aでそれっぽいのを見つけたのですが、うまくいきません。

[Build a stand-alone executable by Visual Studio 2019
Community](https://docs.microsoft.com/en-us/answers/questions/178986/build-a-
stand-alone-executable-by-visual-studio-20.html)

## 行った方法

  1. プロジェクトを選択
  2. 右クリックし、`発行(B)`を選択
  3. `すべての設定を表示`を選択
  4. 配置モードを`自己完結`に変更
  5. `ファイルの公開オプション`を選択
  6. `単一ファイルを作成`にチェックマークを入れる
  7. `発行`ボタンを選択

これで実行されますが、exeとdllは別々のファイルになってしまい、exeファイルだけでは実行できません。

## 環境

  * Visual Studio 2019
  * C#
  * .Net 5.0


CC BY-SA 4.0
2021-08-24T07:13:06.143
81009
2021-08-25T00:41:26.573
2021-08-25T00:01:40.647
40856
40856
question
c# visual-studio .net
Visual Studio 2019で作成したコンソールアプリをdllとexeに分けないで、1つのファイル(exe)として出力したい


コメントで教えてくださった方法で、解決できましたので、載せておきます。  
出来なかった原因としては、プロジェクトの設定で`IncludeNativeLibrariesForSelfExtract`を`true`にしていなかったことでした。

`.csproj`ファイル内の`<PeroperyGroup>`内に`<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>`の記述を追加することで、exeファイルのみで実行できるexeファイルが出力できました。(`.pdb`というデバッグ用のファイルも生成されましたが、削除してもexeには影響はなかったです。(`.pdb`を生成しない設定を見つけたので、下のコメントに載せておきます)

さらに日本語の記事も見つけたので、載せておきます。  
[.NET
5でシングルバイナリを作る](https://opcdiary.net/net-5%E3%81%A7%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%82%92%E4%BD%9C%E3%82%8B/)


CC BY-SA 4.0
2021-08-25T00:17:46.793
81026
2021-08-25T00:41:26.573
2021-08-25T00:41:26.573
40856
40856
81009
answer