(этот ответ был отредактирован для обновления ссылок на новые места загрузки и для отражения новых идей)
Лучше всего использовать ILMerge от Micorosoft .Раньше он был доступен как отдельная загрузка от Microsoft Research (это не часть VS или .NET SDK).
оригинальная версия поддерживалась до2012. Теперь это пакет NuGet , который является наилучшим способом получить его в настоящее время и добавить его в свой проект и создать сервер.
В качестве альтернативы вы можете захотетьпопробуйте ILMerge GUI от CodePlex, который предоставляет интерфейс GUI для ILMerge.Его разработка была прервана, но теперь снова активна.
A Статья Codeproject по ILMerge объясняет больше о том, как его использовать, и объясняет некоторые варианты использования.Пример команды:
ilmerge /target:winexe /out:AllInOne.exe NormalProgram.exe Lib1.dll Lib2.dll
В качестве альтернативы вы можете использовать Fody с Costura.Fody , как описано в этом ответе SO .
Примечание (1): если вам нужно объединить параллельные сборки (т. Е. Смешать собственные 64-битные и 32-битные сборки), вам следует обратиться к этой статье SOдинамическая загрузка параллельных сборок .
Примечание (2): чтобы добавить это как неотъемлемый шаг в процесс сборки, просто перейдите в «Свойства проекта»> «События сборки»> нажмите «Редактировать после сборки»"и заполните команду сверху.Нажмите «Макросы», чтобы увидеть, как ссылаться на текущий файл или сборку.