(この回答は、新しいダウンロード場所へのリンクを更新し、新しい洞察を反映するために編集されました)
あなたの最善の策は、Micorosoft の ILMergeを使用することです。以前は、Microsoft Research から個別にダウンロードできました ( VS または .NET SDK の一部ではありません)。
元のバージョンは 2012 年まで維持されていました。現在はNuGet パッケージになっています。これは、現時点で取得し、プロジェクトとビルド サーバーに追加するための最良の方法です。
別の方法として、ILMergeへの GUI インターフェイスを提供する CodePlex のILMerge GUIを試すこともできます。その開発は中断されましたが、現在は活動を再開しています。
ILMergeに関するCodeproject の記事では、ILMergeの使用方法と使用例について詳しく説明しています。コマンドの例は次のとおりです。
ilmerge /target:winexe /out:AllInOne.exe NormalProgram.exe Lib1.dll Lib2.dll
別の方法として、このSO レスポンスで説明されているように、FodyをCostura.Fodyと共に使用できます。
注 (1): サイド バイ サイド アセンブリをマージする必要がある場合 (つまり、ネイティブの 64 ビット アセンブリと 32 ビット アセンブリを混在させる) は、サイド バイ サイド アセンブリの動的なロードに関する SO 記事を参照してください。
注 (2): これをビルド プロセスに不可欠なステップとして追加するには、[プロジェクト プロパティ] > [ビルド イベント] に移動し、[ビルド後の編集] をクリックして、上記のコマンドを入力します。「マクロ」をクリックして、現在のファイルまたはアセンブリを参照する方法を確認します。