2017-06-14 71 views
0

我用的NuGet是讨厌我,请找到我的项目,如低于其关系具有参考(库)的依赖问题:.NET使用Visual Studio中从参考的NuGet原因无法加载文件或程序集

  • Utils项目依赖于Newtonsoft.Json
  • Project A依赖于Utils项目,该项目是在.NET运行时2.0
  • Project B依赖于Utils项目目标是目标在.NET运行时4.0
  • Project C依赖于Utils项目,该项目的目标在.NET运行时4.5

我决定Utils项目应该使用Newtonsoft.Json这是6.0.4.NET 2.0的最低要求的版本,我认为消费者可以将其覆盖自动但我错了。

Project AProject B & Project C将使用不同版本的Newtonsoft.Json不同的.NET运行库。现在,只要程序跨进代码里面Utils使用的Newtonsoft.Json任何引用它抛出一个异常Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies.

有没有人有什么线索能在谷歌的关键字,甚至更好的解决方案?感谢您的时间和关注。

回答

0

我终于解决了花了数小时后的问题。

诀窍是将以下块添加到app.config/web.config,它使程序将引用从旧版本库重定向到新版本。 (当值10.0.0.0应该是较新的库的版本号)

<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" 
      culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 
+0

感谢这里分享你的解决方案,你可以将其标记为答案,因此它可以帮助其他社区成员谁得到了同样的问题。 –

+0

@Leo我想,但SO政策需要几个小时才能让:) –

相关问题