基本冲突。
SignalR希望Newtonsoft.Json版本4.0.7或更高版本,而RavenDB希望版本等于4.0.5。这显然意味着它们不能并排安装。
除了从其中一个中下载源代码并获取本地的依赖关系之外,还要检查从中创建的二进制文件,是否有可能通过NuGet保持依赖关系,并且可能只是转发DLL调用(例如Mvc对每个新版本都有)?
答案 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并在本地编译它。