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

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

Скрыть последних авторов
Alexandr Fokin 1.1 1 В платформе .Net по умолчанию приложение состоит из:
Alexandr Fokin 5.1 2
Alexandr Fokin 1.1 3 * .exe сборки основного приложения, запускаемый файл
4 * .dll файлов сборок библиотек
5
6 Существует возможность объединить вышеуказщанные файлы в один .exe. Для этого существует несколько способов:
Alexandr Fokin 5.1 7
Alexandr Fokin 11.1 8 1.Утилита ILMerge
9 2.Ручное встраивание dll в ресурсов exe (Рихтер).
10 3.Nuget пакет Costura.Fody, автоматизирующий пункт 2.
11 4.Также существуют решения для ASP.NET (Рассмотреть позже)
12 5.В NetCore 3.0 данный функционал добавлен из коробки
Alexandr Fokin 1.1 13
Alexandr Fokin 1.2 14 1) Утилита ILMerge выполняет интеграцию всех сборок в одну. При этом могут возникать конфликты. И данныйы способ не работает с WPF.
15 2) Данный метод продемонстрирован в книге Рихтера. Суть его в том, что внешние сборки указываются как встраеваемый ресур в основном проекте. И указывается обработчик для их извлечения
Alexandr Fokin 2.1 16 Замечена особенность: если в зависимых сборках присутствуют ресурсы, то функция извлечения должна это учитывать т.к. имена сборки с ресурсами содержит постфикс.
Alexandr Fokin 1.2 17 3) Данный пакет автоматизирует способ, указанный в пункте 2.
Alexandr Fokin 1.4 18
19 Материалы
Alexandr Fokin 5.1 20
Alexandr Fokin 2.4 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]]
Alexandr Fokin 1.5 22
Alexandr Fokin 2.1 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]]
Alexandr Fokin 9.1 24 * [[Книги.CLR via C# | Джеффри Рихтер.WebHome]]
Alexandr Fokin 3.1 25
Alexandr Fokin 1.4 26 * [[Nuget Costura.Fody>>https://www.nuget.org/packages/Costura.Fody/]]
Alexandr Fokin 1.5 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]]