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