我有一个项目,我需要有两个不同版本的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会在其中自动安装一个版本。希望有人可以帮助我。
答案 0 :(得分:0)
实际上,您需要删除其中之一,可能是较旧的。但是,如果删除它,umbraco显然会停止工作,因为它希望它在那里,对吗?解决方案是向您的web.config as specified here添加绑定重定向。为oldVersion属性使用一个范围,以便任何尝试通过12.0.1绑定到版本0.0.0.0的东西都将使用所引用的12.0.1。
请注意,这不能保证对每个引用都有效,因为如果在10到12.0.1之间进行了重大更改,您会遇到麻烦,但是理想情况下,它将在编译时而不是运行时被捕获(如果自己的代码直接引用它)。如果不是您自己的代码(因为直到运行时才会出现错误),则需要确保其在运行时能够按预期运行。