2012-08-28 53 views
3

我想使用NuGet将SignalR和Raven添加到新的ASP.Net MVC 4项目中。NuGet问题安装SignalR和Raven

如果我先做SignalR,然后尝试添加乌鸦我得到以下错误:

Install failed. Rolling back... Install-Package : Already referencing a newer version of 'Newtonsoft.Json'.

如果我先安装乌鸦,那么SignalR我得到:

Install failed. Rolling back... Install-Package : Updating 'Newtonsoft.Json 4.5.7' to 'Newtonsoft.Json 4.5.8' failed. Unable to find a version of 'RavenDB.Client' that is compatible with 'Newtonsoft.Json 4.5.8'.

我想的NuGet是意在处理这种事情?

我怎样才能让他们都添加?

回答

3

看来RavenDB.Client在Newtonsoft.Json = 4.5.7上有一个精确版本的约束,而SignalR有一个更宽松的约束“4.5.4或更高”(实际上是一个由它自己依赖关系,SignalR.Server)。

我设法让你的上述情况下带部分手动的调整工作:

  1. 创建新MVC4项目
  2. 开辟packages.config,并增加了“allowedVersions = ”[4.5.7]“ '属性到Newtonsoft.Json软件包条目
  3. 打开软件包管理器控制台(View ... Other windows ...程序包管理器控制台)并运行update-packages以获取所有默认依赖项的最新代码(需要同时)
  4. 在包管理器控制台
  5. 再次,跑安装包RavenDB.Client
  6. 终于在包管理器控制台,跑安装包SignalR

我想订购上述的一些组合,但它不喜欢它 - 让它工作的东西似乎是手动编辑packages.config,以将Newtonsoft.Json的版本锁定到4.5.7,以便后续安装不会垃圾引用版本。

0

我碰到了同样的问题,而是决定安装SignalR的旧版本。 4.0版(2012年2月)对NewtonSoft> = 4.0.7的相关性,这与RavenDB正确安装已经安装:

Install-Package SignalR -Version 0.4.0 
0

我乌鸦和标准的MVC模板得到了同样的问题。我想要最新版本的Newtonsoft.Json,所以我解决了它的不同之处。 我检查了RavenDB客户端有什么依赖关系,然后首先安装了它们的最新版本Newtonsoft.Json和NLog 然后我使用-IgnoreDependencies标志将数据包安装在数据包管理器控制台中。

Install-Package -Id RavenDB.Client -IgnoreDependencies 

工作正常。 (我正在计算RavenDB与目前最新的Newtonsoft.Json不兼容的计算风险,但我是一个冒失鬼)

+0

我从Oren Eini(Ayende Rahien)得到了答案。他说:你需要做: 安装包Raven.Client -Pre 这将解决这个问题,因为你将使用2.0 –