newtonsoft.json

时间:2019-03-13 15:42:19

标签: c# visual-studio web-config

我有一个项目,我需要有两个不同版本的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会在其中自动安装一个版本。希望有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

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

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