# Сборка в один .exe файл

Редактировал(а) Alexandr Fokin 2024/09/01 13:05

В платформе .Net по умолчанию приложение состоит из:

- .exe сборки основного приложения, запускаемый файл
- .dll файлов сборок библиотек

Существует возможность объединить вышеуказщанные файлы в один .exe. Для этого существует несколько способов:

1 Утилита ILMerge
Утилита ILMerge выполняет интеграцию всех сборок в одну. При этом могут возникать конфликты. И данныйы способ не работает с WPF.

2 Ручное встраивание dll в ресурсов exe (Рихтер).
https://docs.microsoft.com/ru-ru/archive/blogs/microsoft_press/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition
Данный метод продемонстрирован в книге Рихтера. Суть его в том, что внешние сборки указываются как встраеваемый ресур в основном проекте. И указывается обработчик для их извлечения
Замечена особенность: если в зависимых сборках присутствуют ресурсы, то функция извлечения должна это учитывать т.к. имена сборки с ресурсами содержит постфикс.
CLR via C# | Джеффри Рихтер

3 Nuget пакет Costura.Fody, автоматизирующий пункт 2
Fody

4 Также существуют решения для ASP.NET (Рассмотреть позже)

5 В NetCore 3.0 данный функционал добавлен из коробки
https://docs.microsoft.com/ru-ru/dotnet/core/deploying/single-file

Материалы

- Как-скомпилировать-все-проекты-солюшена-в-один-exe

Теги: c# assembly
Создал(а) Alexandr Fokin 2020/02/16 21:35

- Комментарии (1)
- Вложения (0)
- История
- Информация

## Приложения