Сборка в один .exe файл
В платформе .Net по умолчанию приложение состоит из:
- .exe сборки основного приложения, запускаемый файл
- .dll файлов сборок библиотек
Существует возможность объединить вышеуказщанные файлы в один .exe. Для этого существует несколько способов:
1.Утилита ILMerge
2.Ручное встраивание dll в ресурсов exe (Рихтер).
3.Nuget пакет Costura.Fody, автоматизирующий пункт 2.
Fody
4.Также существуют решения для ASP.NET (Рассмотреть позже)
5.В NetCore 3.0 данный функционал добавлен из коробки
1) Утилита ILMerge выполняет интеграцию всех сборок в одну. При этом могут возникать конфликты. И данныйы способ не работает с WPF.
2) Данный метод продемонстрирован в книге Рихтера. Суть его в том, что внешние сборки указываются как встраеваемый ресур в основном проекте. И указывается обработчик для их извлечения
Замечена особенность: если в зависимых сборках присутствуют ресурсы, то функция извлечения должна это учитывать т.к. имена сборки с ресурсами содержит постфикс.
3) Данный пакет автоматизирует способ, указанный в пункте 2.
Материалы