Когда я пытаюсь опубликовать их через Visual Studio, у меня есть только опция «Переносной» в целевой среде выполнения.Я не могу отменить его выбор.
Portable
является (насколько мне известно) опцией развертывания на основе среды (FDD) в Visual Studio 2017.
ЕслиЯ пытаюсь использовать интерфейс командной строки для публикации запуска только команды «dotnet publish -c Release», в которую все еще входят среды выполнения.
Эта официальная документация Microsoft по публикации приложений .NET Core с CLI четко определяет dotnet publish -c Release
как параметр FDD для командной строки.
[T] вывод включает в себя среды выполнения, которые мне не нужны.
Базовое консольное приложение "Hello World" (dotnet new console
), созданное в .NET Core 2.2 и опубликованное с dotnet publish -c Release
создает четыре файла в папке publish (например, appname.deps.json
, appname.dll
, appname.pdb
и appname.runtimeconfig.json
).
Напротив, полностью автономное развертывание (SCD)того же консольного приложения по умолчанию "Hello World", опубликованного с dotnet publish -c Release -r <RID> --self-contained true
(RID перечислены здесь ), имеет приблизительно 217+ файлов (212 не программных .dll) и составляет ~ 66 МБ.
Я не уверен, если вы имеете в виду эти 212 .dll, когда вы говорите, что у вас есть ненужные среды выполнения.Но если это не то, что вы имеете в виду, то в качестве предложения вы можете изучить свой собственный код (или, например, проекты Enums
и SharedHelpers
), чтобы лучше понять эту проблему.
Другой вариант может заключаться в простой дедупликации всех созданных сред выполнения (например, использование одних и тех же сред выполнения для нескольких приложений, если применимо).