当解决方案的项目多到必定的程度的时候,在 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>
出现上述错误主要有如下几种缘由:code
第一,引用不存在vs自动找到旧版的。
第二,web.config配置的版本号跟实际想要版本号不对。
第三,bin文件夹里面的根本就是旧版的。
第四,本文中描述的这种。
xml
使用这种解决方法也能够解决其余 dll 版本冲突,不过这要求有一个大前提:高版本的dll兼容低版本的dll。htm
参考:get