RavenDB和SignalR Nuget包依赖冲突

时间:2012-02-20 23:27:19

标签: nuget ravendb signalr

基本冲突。

SignalR希望Newtonsoft.Json版本4.0.7或更高版本,而RavenDB希望版本等于4.0.5。这显然意味着它们不能并排安装。

除了从其中一个中下载源代码并获取本地的依赖关系之外,还要检查从中创建的二进制文件,是否有可能通过NuGet保持依赖关系,并且可能只是转发DLL调用(例如Mvc对每个新版本都有)?

2 个答案:

答案 0 :(得分:10)

甚至有更合适的方法来解决这场冲突。 由于.NET为redirect assemblies提供了可能性,为什么不使用它;)

您可以在App.config中添加类似的内容(如果已经放置了assemblyBinding,请注意):

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

使用此重定向集,您只需添加RavenDB包和SignalR包(每个包引用其他版本的JSON.NET)并执行修复。

此外,我还在版本4.0.5中请求了{JORD.NET pull request on SignalR,因为它应该向后兼容了

答案 1 :(得分:3)

我们几天前遇到了同样的问题,这是一个令人讨厌的问题。我们发现您无法使用NuGet管理依赖项。相反,我们已将SignalR更改为使用4.0.5并在本地编译它。