#c#
#c#
Вопрос:
Кто-нибудь может мне помочь? Я пытаюсь опубликовать свое консольное приложение .net core в одном файле.
Я использую эту команду:
dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true
Я ожидаю, что он создаст один файл. Но все же есть dll-файлы:
clrcompression.dll
clrjit.dll
coreclr.dll
mscordaccore.dll
Как я могу это исправить? Я уже ищу, но это тот же результат
Ответ №1:
Для объединения собственных библиотек вам необходимо указать IncludeNativeLibrariesForSelfExtract
флаг.
Итак, попробуйте запустить это dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true /p:IncludeNativeLibrariesForSelfExtract=true
См. https://docs.microsoft.com/en-us/dotnet/core/deploying/single-file#other-considerations
Комментарии:
1. Хорошо, это может быть то, что я ищу. Я попробую позже и оставлю отзыв
2. Большое вам спасибо
Ответ №2:
Чтобы включить библиотеки DLL dotnet runtime в ваш исполняемый файл, вам также необходимо использовать --self-contained
флаг. Итак, вы можете запускать dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true --self-contained true
.
См. https://docs.microsoft.com/en-us/dotnet/core/deploying/single-file
Комментарии:
1. уже пробовал это тоже. Все то же самое. i.imgur.com/lNA0sIz.png
2. Я попробовал, попробовал и получил тот же результат. ответ @Anis правильный
Ответ №3:
Если вы используете Visual Studio, перейдите Build-> Publish [yourprojectname], отредактируйте профиль и установите флажок Создать один файл.
Ответ №4:
У меня тоже была такая же проблема, но я нашел ответ, изучив меню dotnet publish
справки. Используйте следующую команду dotnet publish -r win-x64 /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true
, которая встроит .библиотеки dll в двоичном файле, поэтому в папке публикации останется только файл .pdb, который не нужен во время выполнения.