2012-02-07 31 views
4

我有一個叫做「Foo」的DLL項目,它引用了Newtonsoft.Json 4.0.7。 而我有第二個叫做「Bar」的DLL項目,引用「Foo」並且引用Newtonsoft.Json 4.0.5。由於各種原因,不可能改變兩者的Newtonsoft.Json版本。如何爲DLL項目做bindingRedirect以防止 - 警告MSB3247:發現衝突

當我編譯,我得到的項目「吧」這樣的警告:

警告MSB3247:不同版本的同一依賴程序集之間存在衝突。

所以我創建了一個的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更改爲控制檯時,警告消失。所以我想重定向只適用於可執行文件。

如何在我的方案中擺脫該警告?

回答

0

你想訪問不同的NewtonSoft.Json DLL版本嗎?不?從配置中刪除塊,一切工作正常。

+0

正如我所說,「酒吧」需要4.0.5和「Foo」需要4.0.7「Foo」是一個外部的,所以我不能改變它的綁定。「Bar」引用RavenDB需要4.0.5工作,配置塊不會改變任何東西。 – lanwin 2012-02-07 19:32:05

0

可能會出現此錯誤的不同場合, 我收到消息MSB3247,並解決了將排除的DLL-Project重新加載到我的解決方案的問題。該項目有一個被排除的DLL的引用,但有DLL的前編譯版本,可能導致了問題 - 無論如何現在它再次運行( - :
我希望它可以幫助

相關問題