首页 > 解决方案 > newtonsoft.json 的两个依赖版本

问题描述

我有一个项目,我需要有两个不同版本的 newtonsoft.json。我尝试像这样使用codeBase:

        <dependentAssembly>
          <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
          <codeBase version="10.0.0.0" href="dll\newtonsoft\10.0.3\Newtonsoft.Json.dll"/>
          <codeBase version="12.0.0.0" href="dll\newtonsoft\12.0.1\Newtonsoft.Json.dll"/>
        </dependentAssembly>

但现在我得到“发现同一依赖程序集的不同版本之间的冲突”。例外。

我不确定项目参考中应该是什么版本,VS 在此自动安装一个版本。希望有人能在这个过程中帮助我。

标签: c#visual-studioweb-config

解决方案


您在这里需要做的实际上是删除其中一个,可能是较旧的。但是,如果您删除它,umbraco 显然会停止工作,因为它希望它在那里,对吗?解决方案是按照此处指定的方式将绑定重定向添加到您的 web.config 。使用 oldVersion 属性的范围,以便尝试绑定到版本 0.0.0.0 到 12.0.1 的任何内容都将使用引用的 12.0.1。

请注意,这并不能保证对每个引用都有效,因为如果在 10 和 12.0.1 之间发生了重大更改,您将遇到麻烦,但理想情况下,这将在编译时而不是运行时被捕获(如果您自己的代码是直接引用)。如果它不是您自己的代码(因为直到运行时才会出现错误),您需要确保它在运行时按预期工作。


推荐阅读