Опубликовать консольное приложение .net как FDD не вариант? - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть несколько небольших вспомогательных консольных приложений, написанных на C # с использованием ядра .net.Когда я пытаюсь опубликовать их через Visual Studio, у меня есть только опция «Переносной» в целевой среде выполнения.Я не могу отменить это.Это позволяет выводить данные о времени выполнения, которые мне не нужны.

Если я пытаюсь использовать интерфейс командной строки для публикации запуска только команды «dotnet publish -c Release», она все равно включает в себя среды выполнения.

Я попытался обновить SDK ядра .net и приложение до версии 2.2, что не дало мне больше возможностей, и Google тоже не помогло.

Ниже приводится csproj одной из консолей.apps: .csproj file

Ниже приведены мои параметры публикации в VS 2017: параметры публикации

Я искал в Google бесчисленные часы, пытаясь найтирешение.Но каждое решение, которое я пробовал, по-прежнему включает время выполнения при публикации.

Так что это мое последнее средство и я очень надеюсь, что у кого-то здесь есть решение.

1 Ответ

0 голосов
/ 04 февраля 2019

Когда я пытаюсь опубликовать их через 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), чтобы лучше понять эту проблему.

Другой вариант может заключаться в простой дедупликации всех созданных сред выполнения (например, использование одних и тех же сред выполнения для нескольких приложений, если применимо).

...