RavenDB和SignalR Nuget包依赖冲突

Ran*_*ric 10 ravendb nuget signalr

基本冲突.

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

因此,除了从其中一个中下载源代码并获取本地的依赖关系然后必须检查从中创建的二进制文件,是否有可能保持使用NuGet管理的依赖项,并且可能只是转发DLL调用(像Mvc那样每个新版本都有)?

das*_*dot 10

甚至有更合适的方法来解决这场冲突.由于.NET为我们提供了重定向程序集的可能性,为什么不使用它;)

您可以在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>
Run Code Online (Sandbox Code Playgroud)

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

另外,我在SignalR上做了一个pull请求,要求在版本4.0.5中支持JSON.NET(因为它应该向后兼容)


Dan*_*ang 3

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