我们在更新Newtonsoft.Json后遇到了程序集冲突。我无法理解错误中引用的特定版本来自何处。 web.config中没有任何内容指向特定版本。
System.IO.FileLoadException:无法加载文件或程序集 'Newtonsoft.Json,Version = 3.5.0.0,Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个依赖项。该 找到程序集的清单定义与程序集不匹配 参考。 (HRESULT异常:0x80131040)
GAC会使两个版本的程序集解决问题吗?
答案 0 :(得分:17)
作为marto答案中的@jammykam commented,您可以重定向程序集。过去我和Newtonsoft以及Sitecore没有遇到任何问题。您可以查看我工作的Sitecore Content as Service code。
您对web.config文件中的这些行特别感兴趣: https://github.com/HedgehogDevelopment/sitecore-content-service/blob/master/Sitecore/Web/Web.config#L3499
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.5.0.0" />
</dependentAssembly>
答案 1 :(得分:3)
GAC他们可能会工作,但它会造成维护噩梦。不要这样做!
我认为你有两个选择:
如果您不需要图书馆的任何最新功能(如动态...等),我会建议1