Исходный код вики Сборка в один .exe файл

Версия 11.1 от Alexandr Fokin на 2020/07/26 12:40

Последние авторы
1 В платформе .Net по умолчанию приложение состоит из:
2
3 * .exe сборки основного приложения, запускаемый файл
4 * .dll файлов сборок библиотек
5
6 Существует возможность объединить вышеуказщанные файлы в один .exe. Для этого существует несколько способов:
7
8 1.Утилита ILMerge
9 2.Ручное встраивание dll в ресурсов exe (Рихтер).
10 3.Nuget пакет Costura.Fody, автоматизирующий пункт 2.
11 4.Также существуют решения для ASP.NET (Рассмотреть позже)
12 5.В NetCore 3.0 данный функционал добавлен из коробки
13
14 1) Утилита ILMerge выполняет интеграцию всех сборок в одну. При этом могут возникать конфликты. И данныйы способ не работает с WPF.
15 2) Данный метод продемонстрирован в книге Рихтера. Суть его в том, что внешние сборки указываются как встраеваемый ресур в основном проекте. И указывается обработчик для их извлечения
16 Замечена особенность: если в зависимых сборках присутствуют ресурсы, то функция извлечения должна это учитывать т.к. имена сборки с ресурсами содержит постфикс.
17 3) Данный пакет автоматизирует способ, указанный в пункте 2.
18
19 Материалы
20
21 * [[Как-скомпилировать-все-проекты-солюшена-в-один-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]]
22
23 * [[Jeffrey Richter: Excerpt #2 from CLR via C#, Third Edition>>https://blogs.msdn.microsoft.com/microsoft_press/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition]]
24 * [[Книги.CLR via C# | Джеффри Рихтер.WebHome]]
25
26 * [[Nuget Costura.Fody>>https://www.nuget.org/packages/Costura.Fody/]]
27 * [[Fody is only supported on MSBuild 16 and above. Current version: 15>>https://stackoverflow.com/questions/55795625/fody-is-only-supported-on-msbuild-16-and-above-current-version-15]]