Исходный код вики Сборка в один .exe файл
Редактировал(а) Alexandr Fokin 2024/09/01 13:05
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | В платформе .Net по умолчанию приложение состоит из: | ||
| 2 | |||
| 3 | * .exe сборки основного приложения, запускаемый файл | ||
| 4 | * .dll файлов сборок библиотек | ||
| 5 | |||
| 6 | Существует возможность объединить вышеуказщанные файлы в один .exe. Для этого существует несколько способов: | ||
| 7 | |||
| 8 | 1 Утилита ILMerge | ||
| 9 | Утилита ILMerge выполняет интеграцию всех сборок в одну. При этом могут возникать конфликты. И данныйы способ не работает с WPF. | ||
| 10 | |||
| 11 | 2 Ручное встраивание dll в ресурсов exe (Рихтер). | ||
| 12 | https://docs.microsoft.com/ru-ru/archive/blogs/microsoft_press/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition | ||
| 13 | Данный метод продемонстрирован в книге Рихтера. Суть его в том, что внешние сборки указываются как встраеваемый ресур в основном проекте. И указывается обработчик для их извлечения | ||
| 14 | Замечена особенность: если в зависимых сборках присутствуют ресурсы, то функция извлечения должна это учитывать т.к. имена сборки с ресурсами содержит постфикс. | ||
| 15 | [[Книги.CLR via C# | Джеффри Рихтер.WebHome]] | ||
| 16 | |||
| 17 | 3 Nuget пакет Costura.Fody, автоматизирующий пункт 2 | ||
| 18 | [[Разработка.NET.Библиотеки.Инструменты.Fody.WebHome]] | ||
| 19 | |||
| 20 | 4 Также существуют решения для ASP.NET (Рассмотреть позже) | ||
| 21 | |||
| 22 | 5 В NetCore 3.0 данный функционал добавлен из коробки | ||
| 23 | https://docs.microsoft.com/ru-ru/dotnet/core/deploying/single-file | ||
| 24 | |||
| 25 | |||
| 26 | Материалы | ||
| 27 | |||
| 28 | * [[Как-скомпилировать-все-проекты-солюшена-в-один-exe>>https://ru.stackoverflow.com/questions/468942/%D0%9A%D0%B0%D0%BA-%D1%81%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D1%8B-%D1%81%D0%BE%D0%BB%D1%8E%D1%88%D0%B5%D0%BD%D0%B0-%D0%B2-%D0%BE%D0%B4%D0%B8%D0%BD-exe]] |