“ Newtonsoft.Json”和“ Newsonsoft.Json”中都存在“ JsonConvert”类型

时间:2020-04-13 09:35:48

标签: c# nuget-package

我正在一个需要Microsoft azure SDK和Autodesk NuGet软件包的项目上,问题是,当我安装Autodesk forge Nuget时,我收到一个关于“ Newtonsoft中存在'JsonConvert'类型的错误”杰森。 当我检查参考对象浏览器时,发现有2个版本的Newtonsoft,其中一个是6.0,指的是Microsoft Azure sdk。

我试图从.csproj中删除较旧的版本,但没有找到。

enter image description here

这是下面的对象浏览器屏幕

enter image description here

我遇到的错误是

“ Newtonsoft.Json”中都存在“ JsonConvert”类型, 版本= 6.0.0.0,文化=中性,PublicKeyToken = 30ad4fe6b2a6aeed”和 'Newtonsoft.Json,版本= 11.0.0.0,文化=中性, PublicKeyToken = 30ad4fe6b2a6aeed'

关于解决它的任何建议,我确实尝试检查两个软件包的依赖性,但是一个确实需要大于10的Newtonsoft版本,而另一个仍仅引用6.0

编辑: 有解决方案,所以在这里添加我所引用的内容

1 个答案:

答案 0 :(得分:1)

可以通过为一个(或两个)冲突的程序集使用别名来解决这种情况。

这里已经回答了类似的问题:Assembly names conflict on external dependencies

您需要执行两个步骤:

  1. 为部件赋予别名(通过在“对象浏览器”中选择“属性”)
  2. 在代码中使用关键字extern alias <alias-name>;

在上述类似问题中给出了一个例子。

Microsoft的文档extern alias中也对此进行了说明。它引入了并行的全局名称空间。