NuGet问题安装SignalR和Raven

时间:2012-08-28 09:32:15

标签: ravendb nuget signalr json.net

我正在尝试使用NuGet将SignalR和Raven添加到新的ASP.Net MVC 4项目中。

如果我先做SignalR,那么尝试添加Raven我会收到以下错误:

  

安装失败。回滚...安装包:已经引用   更新版本的'Newtonsoft.Json'。

如果我先安装Raven,那么SignalR我会:

  

安装失败。回滚...安装包:更新   'Newtonsoft.Json 4.5.7'到'Newtonsoft.Json 4.5.8'失败了。无法   找到兼容的'RavenDB.Client'版本   'Newtonsoft.Json 4.5.8'。

我认为NuGet是为了处理这类事情?

如何才能将它们都添加?

4 个答案:

答案 0 :(得分:3)

看起来RavenDB.Client对Newtonsoft.Json = 4.5.7有一个精确版本的约束,而SignalR有一个更宽松的约束'4.5.4或更高'(实际上是一个由它自己的依赖项强加的约束) ,SignalR.Server)。

我设法通过一些手动调整来完成上述方案:

  1. 创建新的MVC4项目
  2. 打开packages.config并在Newtonsoft.Json包条目中添加' allowedVersions =“[4.5.7]”'属性
  3. 打开包管理器控制台(查看...其他窗口...包管理器控制台)并运行 update-packages 以获取所有默认依赖项的最新代码(需要一段时间)
  4. 再次在软件包管理器控制台中,运行 install-package RavenDB.Client
  5. 最后在软件包管理器控制台中,运行 install-package SignalR
  6. 我尝试了一些上面的命令组合,但它不喜欢它 - 让它工作的东西似乎是手动编辑packages.config来将Newtonsoft.Json的版本锁定到4.5.7以便后续安装不会废弃引用的版本。

答案 1 :(得分:1)

我们遇到了这个问题,但最终手动拉入了Raven程序集(因此我们可以定位特定版本)。

我们遇到的一点是,可以使用命令行工具强制Nuget安装包: How to install an older version of package via NuGet?

答案 2 :(得分:0)

我遇到了同样的问题,但决定安装旧版本的SignalR。版本4。0(2012年2月)依赖于NewtonSoft> = 4.0.7,并且已经安装了RavenDB正确安装:

Install-Package SignalR -Version 0.4.0 

答案 3 :(得分:0)

我遇到了与Raven和标准MVC模板相同的问题。我想要最新版本的Newtonsoft.Json,所以我用不同的方式解决了它。 我检查了RavenDB Client的依赖关系,然后安装了最新版本的Newtonsoft.Json和NLog 然后,我使用-IgnoreDependencies标志在数据包管理器控制台中安装了数据包。

Install-Package -Id RavenDB.Client -IgnoreDependencies 

工作得很好。 (我正在冒险计算RavenDB目前与最新的Newtonsoft.Json不兼容。但我是一个夜魔侠)