Ошибка: сборка, указанная в манифесте зависимостей приложения, не найдена. Пакет: Newtonsoft.Json при развертывании .Net core 2.2. - PullRequest
0 голосов
/ 19 сентября 2019

Я развертываю консольное приложение .Net core 2.2, используя автономное развертывание и используя некоторые сторонние библиотеки, такие как (log4net и Newtonsoft.Json).Приложение работает нормально в системе, в которой оно разработано, но не работает при развертывании в любой другой системе.Отображается следующая ошибка:

C:\Users\shubhamjain\source\repos\Collect\Collect\bin\Release\netcoreapp2.2\win-x64>Collect.exe

Ошибка: сборка, указанная в манифесте зависимостей приложения (Collect.deps.json), не найдена: package: 'Newtonsoft.Json', версия: '12 .0.2' путь: 'lib / netstandard1.3 / Newtonsoft.Json.dll'

Я пробовал следующие вещи:

  1. Изменениеверсия ядра .Net с 2.1 и 2.2
  2. , изменяющая версию Newtonsoft.Json с nuget
  3. Обновление visual studio 2019

Ничего не получалось, но когда я посмотрел нафайл («Collect.runtimeconfig.dev.json» в пути C:\Users\shubhamjain\source\repos\Collect\Collect\bin\Release\netcoreapp2.2\win-x64) и измените shubhamjain с именем пользователя развернутой системы, все работает нормально.

Теперь, что я наблюдаю, что Newtonsoft.Json зависит от файла (.runtimeconfig.dev.json), и для того, чтобы он работал, мне нужно изменить имя пользователя в этом файле.

Есть ли способ решить это автоматически?

Collect.runtimeconfig.dev.json:

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

1 Ответ

0 голосов
/ 19 сентября 2019

Можете ли вы попытаться настроить файл json с использованием параметра %username%.Я не уверен, что это возможно, но вы можете использовать этот параметр в командной строке, чтобы получить зарегистрированное имя пользователя.Вы можете проверить ссылку для более подробной информации.

В этом случае ваш Collect.runtimeconfig.dev.json будет:

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

Также вы можете подготовить различные файлы конфигурации для разных сред,Может быть этот документ Microsoft может быть полезен для этого.

...