首页 文章

RavenDB和SignalR Nuget包依赖冲突

提问于
浏览
10

基本冲突 .

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

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

2 回答

  • 3

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

  • 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)并执行修复 .

    另外我做了pull request on SignalR也要求在版本4.0.5中支持JSON.NET(因为它应该向后兼容)

相关问题