Newsoft.Json版本冲突之解决

当解决方案的项目多到必定的程度的时候,在 dll 的引用管理上不免有疏忽,最近因为Newsoft.Json 的引用冲突挠破了头皮。项目报错以下:html


这种错误很常见,通常是程序引用了不匹配的版本所致的,删除掉原来的引用,从新引用解决方案下对应版本的 dll 便可解决,可是此次状况特殊,并非引用错误,而是引用冲突:新项目中引用了两个不一样的老项目生成的 dll 可是老项目中分别用了不一样版本的 Newsoft.Json 无论引用哪一个版本的 Newsoft.Json 程序总会报错。web

解决办法以下:json

web.config  的 configuration节点下面注明spa

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.5.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

就强制使用版本4.5.0.0 的Newsoft.Json 了,这样就不会出现上述错误。

出现上述错误主要有如下几种缘由:code

第一,引用不存在vs自动找到旧版的。
第二,web.config配置的版本号跟实际想要版本号不对。
第三,bin文件夹里面的根本就是旧版的。
第四,本文中描述的这种。
xml

使用这种解决方法也能够解决其余 dll 版本冲突,不过这要求有一个大前提:高版本的dll兼容低版本的dll。htm


参考:get

http://www.lxway.com/48528444.htm
it

http://stackoverflow.com/questions/21498074/how-can-i-fix-assembly-version-conflicts-with-json-net-after-updating-nuget-pack
io

http://www.lxway.com/488185852.htm

相关文章
相关标签/搜索