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

相關文章
相關標籤/搜索