問題描述
當運行站點或者控制台等程序時,如果項目引用的dll版本與其它dll所依賴的dll版本不一致,就會報未能加載程序集的錯誤。錯誤信息為:
未能加載文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一個依賴項。找到的程序集清單定義與程序集引用不匹配。 (異常來自 HRESULT:0x80131040)
原因分析
分析如下圖。
解決方案
在web.config或app.config中添加以下節點。

1 <!--dll版本向下兼容--> 2 <runtime> 3 <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 4 <dependentAssembly> 5 <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 6 <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> 7 </dependentAssembly> 8 </assemblyBinding> 9 </runtime> 10