类型'JsonConvert'存在于'Newtonsoft.Json ver 9和10中

LTM*_*MOD 1 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.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'    
Run Code Online (Sandbox Code Playgroud)

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

Aar*_*and 11

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

  1. 右键单击您的项目并选择卸载项目。
  2. 现在再次右键单击并选择 Edit MyProject.csproj(或任何您的项目名称)
  3. 在此文件中搜索 Newtonsoft.Json。
  4. 如果您发现多个具有不同版本的 Reference 元素,请删除除最新版本之外的所有元素
  5. 保存文件
  6. 再次右键单击您的项目并选择重新加载项目

错误应该消失了。

  • 谢谢。这是唯一真正有意义的答案。另请注意,其他有相同问题的人,可能有一个没有特定版本号的参考,我删除了那个,它似乎修复了它。 (2认同)

小智 9

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

在我的情况下,我从6更新了newtonsoft到11.0.2.编译给出了包含版本6和11的此错误消息.我尝试卸载,但我没有,导致依赖.但我使用了这个命令,我成功降级了.安装包Newtonsoft.Json -Version 11.0.1

而这个错误消失了.


Pat*_*man 2

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

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
      <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

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