Другой Newtonsoft. Json .dll do tnet publi sh vs publi sh с Visual Studio - PullRequest
0 голосов
/ 26 мая 2020

У меня есть . NET Базовое веб-приложение с целевой структурой .netcoreapp2.0 .

Если я публикую sh свое приложение через Visual Studio (профиль папки) Я получаю другой Newtonsoft.Json.dll, затем с помощью команды dotnet publish --configuration Release --output D:/publish/Frontend /property:PublishWithAspNetCoreTargetManifest=false

VS publi sh версия :

VS publish version

do tnet publi sh версия :

enter image description here

Созданный файл AutomaticConfirmationWebfrontend.deps.json всегда имеет эту зависимость:

"runtime": {
          "lib/netstandard1.3/Newtonsoft.Json.dll": {
            "assemblyVersion": "10.0.0.0",
            "fileVersion": "10.0.1.20720"
          }
        }

Это приводит к проблеме для моего процесса CI / CD, когда я публикую sh свое приложение с помощью команды dotnet publish. Если я открываю сайт, я получаю сообщение об ошибке, что сборка Newtonsoft. JSON 10.0.0.0 не может быть найдена . Если я вручную скопирую DLL с версией 10.0.0.0 в папку приложения, она работает! Локальная отладка моего приложения тоже отлично работает!

У меня не установлен пакет Newtonsoft NuGet. Я думаю, что использую встроенный пакет из. NET Core.

В моем Startup.cs у меня есть следующая строка кода:

services.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());

Мне это нужно для строчных букв JSON объектов. Я импортировал это пространство имен:

using Newtonsoft.Json.Serialization

Кто-нибудь знает, что я делаю не так или как это исправить?

...