基本冲突。
SignalR要求Newtonsoft.Json版本为4.0.7或更高版本,而RavenDB需要版本等于4.0.5。这显然意味着它们无法并存安装。
所以除了从它们中的一个下载源代码并在本地解决依赖项,然后检查从其中创建的二进制文件之外,还有可能通过NuGet管理依赖关系,并且可能只是转发DLL调用(例如Mvc每个新版本都会这样做)吗?
基本冲突。
SignalR要求Newtonsoft.Json版本为4.0.7或更高版本,而RavenDB需要版本等于4.0.5。这显然意味着它们无法并存安装。
所以除了从它们中的一个下载源代码并在本地解决依赖项,然后检查从其中创建的二进制文件之外,还有可能通过NuGet管理依赖关系,并且可能只是转发DLL调用(例如Mvc每个新版本都会这样做)吗?
有一种更为合适的方法来解决这个冲突。由于.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>
几天前我们遇到了同样的问题,这是一个麻烦的问题。我们发现你不能使用NuGet来管理依赖项。相反,我们将SignalR更改为使用4.0.5并在本地编译。