C# “Newtonsoft.Json版本9和版本10中都存在类型“JsonConvert”

C# “Newtonsoft.Json版本9和版本10中都存在类型“JsonConvert”,c#,json.net,C#,Json.net,在我的项目中,Newtonsoft.Json似乎有多个版本可供使用,这一直困扰着我。问题是它不是。我在项目中安装了10个,这是唯一的DLL。GAG没有dll,web.config似乎正确 The type 'JsonConvert' exists in both 'Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' and 'Newtonsoft.Json, Version=10.

在我的项目中,Newtonsoft.Json似乎有多个版本可供使用,这一直困扰着我。问题是它不是。我在项目中安装了10个,这是唯一的DLL。GAG没有dll,web.config似乎正确

The type 'JsonConvert' exists in both 'Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' and 'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'    

还有谁见过这个吗?有没有办法指定要在代码级别或web.config中使用的版本?

您应该强制只加载一个程序集,我建议加载最新的程序集。您可以检查是否所有引用的程序集都使用该版本。如果没有,则必须将其添加到web.config文件中:


这将强制使用Newtonsoft.Json的版本10。确保从bin文件夹中删除版本9。

尝试安装以前版本的newtonsoft.json

在我的情况下,我将newtonsoft从6.0升级到了11.0.2。 编译时给出了此错误消息,其中包括版本6和11。 我尝试卸载,但由于依赖关系,我没有卸载。 但我使用了这个命令,成功地降级了。 安装软件包Newtonsoft.Json-版本11.0.1


这个错误消失了。

这似乎是由于对Newtonsoft.Json DLL的多个不可见引用造成的

在项目上单击鼠标右键,然后选择“卸载项目”。 现在再次右键单击并选择Edit MyProject.csproj或任何项目名称 在此文件中搜索Newtonsoft.Json。 如果发现多个引用元素具有不同的版本,请删除除最新版本以外的所有引用元素 保存文件 再次右键单击项目并选择“重新加载项目”
错误应该消失。

是的,这是正确的。我有以下几点:您是否按照建议删除了对版本9的引用?web.config中的任何地方都没有对版本9的引用。还有什么地方我该去看看吗?可能是Machine.config?在您的项目引用中。您的csproj文件。我确认从11.0.2降级到11.0.1解决了这个问题。安装包Newtonsoft.Json-版本11.0.1难以置信:今天也有同样的问题。降级到11.0.1解决了该问题。我使用了Nuget包管理器,而不是命令。谢谢。这是唯一有意义的答案。另外请注意,对于其他有相同问题的人,可能有一个引用没有特定的版本号,我删除了那个,它似乎修复了它。