如何为DLL项目做bindingRedirect防止 - 警告MSB3247:发现冲突

时间:2012-02-07 14:25:14

标签: c# .net

我有一个名为“Foo”的DLL项目,它引用了Newtonsoft.Json 4.0.7。 我有一个名为“Bar”的第二个DLL项目,引用“Foo”并引用Newtonsoft.Json 4.0.5。由于种种原因,不可能改变两者的Newtonsoft.Json版本。

当我编译它时,我在项目“Bar”上收到此警告:

  

警告MSB3247:发现同一依赖程序集的不同版本之间存在冲突。

所以我在项目“Bar”中创建了一个app.config:

<dependentAssembly>
  <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
  <bindingRedirect oldVersion="0.0.0-4.0.7" newVersion="4.0.5"/>
</dependentAssembly>

但并没有阻止警告。

现在有趣的是,当我将“Bar”项目从DLL更改为Console时,警告消失。所以我想重定向只适用于可执行文件。

如何摆脱我的情景中的警告?

2 个答案:

答案 0 :(得分:0)

您想要访问不同的NewtonSoft.Json DLL版本吗?不?从配置中删除块,一切正常。

答案 1 :(得分:0)

此错误可能会有不同的情况, 我收到消息MSB3247并解决了将重新加载排除的DLL项目重新加载到我的解决方案的问题。该项目引用了被排除的DLL,但是有以前编译的DLL版本,可能会导致问题 - 无论如何现在它再次起作用( - :
我希望它有所帮助