У меня есть . 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](https://i.stack.imgur.com/8MN7r.png)
do tnet publi sh версия :
![enter image description here](https://i.stack.imgur.com/NhjyM.png)
Созданный файл 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
Кто-нибудь знает, что я делаю не так или как это исправить?