Изменения документа Сборка в один .exe файл

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

<
От версии < 15.1 >
отредактировано Alexandr Fokin
на 2021/03/06 11:50
К версии < 14.1 >
отредактировано Alexandr Fokin
на 2021/03/06 11:41
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -3,29 +3,27 @@
3 3  * .exe сборки основного приложения, запускаемый файл
4 4  * .dll файлов сборок библиотек
5 5  
6 -
7 7  Существует возможность объединить вышеуказщанные файлы в один .exe. Для этого существует несколько способов:
8 8  
9 9  1. Утилита ILMerge
10 - Утилита ILMerge выполняет интеграцию всех сборок в одну. При этом могут возникать конфликты. И данныйы способ не работает с WPF.
11 -
12 12  2. Ручное встраивание dll в ресурсов exe (Рихтер).
13 - https://docs.microsoft.com/ru-ru/archive/blogs/microsoft_press/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition
14 - Данный метод продемонстрирован в книге Рихтера. Суть его в том, что внешние сборки указываются как встраеваемый ресур в основном проекте. И указывается обработчик для их извлечения
15 - Замечена особенность: если в зависимых сборках присутствуют ресурсы, то функция извлечения должна это учитывать т.к. имена сборки с ресурсами содержит постфикс.
16 - [[Книги.CLR via C# | Джеффри Рихтер.WebHome]]
17 -
18 18  3. Nuget пакет Costura.Fody, автоматизирующий пункт 2.
19 - [[Разработка.NET.Библиотеки.Fody]]
20 - Данный пакет автоматизирует способ, указанный в пункте 2.
21 -
11 +[[Разработка.NET.Библиотеки.Fody]]
22 22  4. Также существуют решения для ASP.NET (Рассмотреть позже)
23 -
24 24  5. В NetCore 3.0 данный функционал добавлен из коробки
25 - https://docs.microsoft.com/ru-ru/dotnet/core/deploying/single-file
14 +https://docs.microsoft.com/ru-ru/dotnet/core/deploying/single-file
26 26  
16 +1) Утилита ILMerge выполняет интеграцию всех сборок в одну. При этом могут возникать конфликты. И данныйы способ не работает с WPF.
17 +2) Данный метод продемонстрирован в книге Рихтера. Суть его в том, что внешние сборки указываются как встраеваемый ресур в основном проекте. И указывается обработчик для их извлечения
18 +Замечена особенность: если в зависимых сборках присутствуют ресурсы, то функция извлечения должна это учитывать т.к. имена сборки с ресурсами содержит постфикс.
19 +3) Данный пакет автоматизирует способ, указанный в пункте 2.
27 27  
28 28  Материалы
29 29  
30 30  * [[Как-скомпилировать-все-проекты-солюшена-в-один-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]]
31 31  
25 +* [[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]]
26 +* [[Книги.CLR via C# | Джеффри Рихтер.WebHome]]
27 +
28 +* [[Nuget Costura.Fody>>https://www.nuget.org/packages/Costura.Fody/]]
29 +* [[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]]