.NET / Собрать проект Visual Studio в один файл с помощью ILMerge

app.exe, d1.dll d2.dll = app.exeОбычно результатом компиляции проекта является сборка (assembly) проекта, а также его зависимости (Referenced Assemblies). Однако иногда нужно чтобы результатом был один файл единственный файл, независимый от других сборок. Например простая утилита, которую можно будет куда угодно скопировать и она будет работать.

Пример

Условно говоря после:

    compile App\App.csproj  
    dir App\bin\Release  

Получаются:

    App.exe
    dep1.dll
    dep2.dll

Нам же нужно лишь один самодостаточный

    App.exe 

То есть содержащий в себе dep1.dll и dep2.dll

На Хабре уже присутствует решение со встраиванием зависимостей в ресурсы, здесь я покажу как это сделать с помощью ILMerge и Post Build Event в Visual Studio.

Рубрика: Habr