我一直困扰着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中使用的版本?
答案 0 :(得分:8)
尝试安装newtonsoft.json的先前版本
在我的情况下,我将newtonsoft从6更新为11.0.2。 编译给出了此错误消息,其中包括版本6和11。 我尝试卸载,但没有这样做,这是导致依赖的原因。 但是我使用了此命令,因此成功降级了。 安装软件包Newtonsoft.Json -Version 11.0.1
此错误消失了。
答案 1 :(得分:1)
你应该强制只加载一个程序集,我建议加载最新的程序集。您可以检查所有引用的程序集是否使用该版本。如果没有,您必须将其添加到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>
这将强制使用Newtonsoft.Json
的第10版。确保从bin
文件夹中删除版本9。
答案 2 :(得分:0)
这似乎是由于对Newtonsoft.Json DLL的多个不可见引用
错误应该消失了。