我正在尝试使用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是为了处理这类事情?
如何才能将它们都添加?
答案 0 :(得分:3)
看起来RavenDB.Client对Newtonsoft.Json = 4.5.7有一个精确版本的约束,而SignalR有一个更宽松的约束'4.5.4或更高'(实际上是一个由它自己的依赖项强加的约束) ,SignalR.Server)。
我设法通过一些手动调整来完成上述方案:
我尝试了一些上面的命令组合,但它不喜欢它 - 让它工作的东西似乎是手动编辑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不兼容。但我是一个夜魔侠)