Как объединить несколько сборок .net core в одну (.dll / .exe)?

Я знаю, что есть сборки ILMerge для .NET Framework (Full Framework). Но как насчет .NET Core? Я хотел бы создать служебную программу командной строки, но я не хочу, чтобы она была как 20 файлов, а только 1 .exe.

Есть ли способ это сделать?

4
2
6 525
2

Ответы 2

Fody (https://github.com/Fody/Fody) поддерживает .NET Core с 2017 года, и вы можете установить его как пакет NuGet в свой проект, чтобы он автоматически запускался как часть процесса сборки вашего проекта.

Как он поддерживает эту функцию? Через плагин? Любой пример? Спасибо!

SuperJMN 13.09.2018 22:08

Я не уверен, что это должно было быть отвергнуто ... Похоже, github.com/Fody/Costura поддерживает то, что вы хотите сделать

Matt Morgan 13.11.2018 01:46

Вы можете использовать новую функцию .NET Core 3.0:

dotnet publish -r win10-x64 -p:PublishSingleFile=true

Читайте в MSDN

Работает только для .EXE. Мне сложно что-то найти, чтобы объединить кучу сборок (.NET Standard) в одну.

Anderson Pimentel 09.06.2020 01:31

Это не лучший способ, потому что он работает не так, как раньше в ILMerge. Он только сжимает файлы в отдельные файлы, но при первом запуске он распаковывает все файлы во временную папку (% TEMP% \. Net в Windows) и запускается оттуда. На самом деле вы увидите только один файл, но он действительно создаст все файлы, и если, например, вам нужно отредактировать файл настроек, вы должны отредактировать его из этой временной папки.

DkAngelito 23.06.2020 15:18

Другие вопросы по теме