Утечка windows имени учетной записи в. Net Базовая конфигурация приложения - PullRequest
0 голосов
/ 14 марта 2020

Я экспериментирую со сборкой MyApp , утилиты командной строки на основе c#, использующей Net Core. При создании установщика msi для этой утилиты я решил, что файл « MyApp.runtimeconfig.dev » должен быть включен для правильной установки, которая позволит MyApp . работать на другой Windows машине. (и что один и тот же файл создается и требуется как для отладочной, так и для релизной сборок)

Содержимое этого файла по умолчанию:

{
  "runtimeOptions": {
    "additionalProbingPaths": [
      "C:\\Users\\MyDevAccount\\.dotnet\\store\\|arch|\\|tfm|",
      "C:\\Users\\MyDevAccount\\.nuget\\packages",
      "C:\\Microsoft\\Xamarin\\NuGet",
      "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
    ]
  }
}

Что меня удивляет, так это включение "C: \ Users \ MyDevAccount \"путь, который является прямым указанием учетной записи на компьютере windows, который я использовал для разработки" MyApp". Я также подозреваю, что ссылка на Xamarin может быть связана с тем, что я установил средства разработки Xamarin при установке VS2019.

Ни один из этих аспектов, вероятно, не будет действительным в системе, в которой я буду развертывать MyApp. Поэтому у меня следующие вопросы:

  1. Является ли NuGetFallbackFolder единственным подходящим путем исследования?

  2. Как получить, чтобы VS2019 не включал несущественные дорожки?

1 Ответ

0 голосов
/ 15 марта 2020

После долгих чтений в Интернете я обнаружил интересный ответ , который объясняет, что я вижу. И моя путаница связана с тем, что фактически является изменением того, что является сборкой "Release" в Visual Studio между. Net Core и не. Net Core проектом.

Из этого ответа:

Вывод в bin / [Configuration] предназначен только для локальной разработки. Вместе с runtimeconfig.dev. json этот файл определяет закрытие зависимостей вашего вывода сборки, а ссылки разрешаются из локального кэша пакета NuGet. Если вы скопируете результаты сборки на другой компьютер / пользователя, он не будет работать.

Хотя я обнаружил, что копирование всей папки Release на другой компьютер работает, этот ответ намекает на то, почему Файл " MyApp.runtimeconfig.dev " появляется в этой папке в первую очередь - Релиз больше не Релиз!

Правильный способ "Релиз" a. Net Core Приложение вместо этого "Publi sh" его.

Когда я опубликовал свое. Net Базовое приложение, результирующий вывод больше не содержал файл " MyApp.runtimeconfig.dev ", таким образом, по сути, этот вопрос был спорным.

...