'Newtonsoft.Json'已经有一个为'Microsoft.CSharp'定义的依赖项,但出现的问题如何解决?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (113)

我在.Net应用程序中安装NewtonSoft.Json来解析Json。当我使用VS 2012时,无法通过NuGet进行安装。这是我得到的错误:

'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'

我试图复制dll并使用它,看起来像在这个版本(10.0.2)中搞砸了一些依赖关系。

经过几个小时的研究,最后我发现它是VS2012和Newtonsoft Json 10.0.2的兼容性问题。将很快发布答案.........

提问于
用户回答回答于

因为VS 2012的NuGet Package Manager(版本2.8.60318.667)不支持.NETStandard(用于最新的Newtonsoft Json Parser Lib。https: //github.com/NuGet/Home/issues/3131

我通过安装旧版本的Newtonsoft Json来解决此问题:

PM> Install-Package Newtonsoft.Json -Version 9.0.1

更多细节见:https//github.com/NuGet/Home/issues/5162

用户回答回答于

我使用VS2015时遇到了同样的问题,并且依赖于Newtonsoft.Json版本= 10.0.3创建了一个NuGet包。我使用了Vin.X在答案中提出的方法作为解决方法。

将Newtonsoft.Json version = 9.0.1安装到项目中后,在.nuspec文件中添加以下说明。

<dependencies>
      <dependency id="Newtonsoft.Json" version="10.0.3" />
</dependencies>

使用软件包的应用程序会将Newtonsoft.Json version = 10.0.3与软件包一起安装为项目的依赖项。

扫码关注云+社区