當解決方案的項目多到必定的程度的時候,在 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