Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ravendb NuGet问题安装信号器和Raven_Ravendb_Nuget_Signalr_Json.net - Fatal编程技术网

Ravendb NuGet问题安装信号器和Raven

Ravendb NuGet问题安装信号器和Raven,ravendb,nuget,signalr,json.net,Ravendb,Nuget,Signalr,Json.net,我试图使用NuGet将SignalR和Raven添加到一个新的ASP.NETMVC4项目中 如果我先使用信号器,然后尝试添加Raven,则会出现以下错误: 安装失败。正在回滚。。。安装包:已在引用 “Newtonsoft.Json”的更新版本 如果我先安装Raven,那么Signal我会得到: 安装失败。正在回滚。。。安装程序包:正在更新 “Newtonsoft.Json 4.5.7”到“Newtonsoft.Json 4.5.8”失败。不能 查找与兼容的“RavenDB.Client”版本 “

我试图使用NuGet将SignalR和Raven添加到一个新的ASP.NETMVC4项目中

如果我先使用信号器,然后尝试添加Raven,则会出现以下错误:

安装失败。正在回滚。。。安装包:已在引用 “Newtonsoft.Json”的更新版本

如果我先安装Raven,那么Signal我会得到:

安装失败。正在回滚。。。安装程序包:正在更新 “Newtonsoft.Json 4.5.7”到“Newtonsoft.Json 4.5.8”失败。不能 查找与兼容的“RavenDB.Client”版本 “Newtonsoft.Json 4.5.8”

我以为NuGet是来处理这类事情的


如何才能将两者都添加进去?

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

我通过一些手动调整,成功实现了上述场景:

  • 创建了新的MVC4项目
  • 打开packages.config并向Newtonsoft.Json包条目添加“allowedVersions=“[4.5.7]”“”属性
  • 打开软件包管理器控制台(查看…其他窗口…软件包管理器控制台)并运行更新软件包以为所有默认依赖项引入最新代码(需要一段时间)
  • 再次在软件包管理器控制台中,运行安装软件包RavenDB.Client
  • 最后在软件包管理器控制台中,运行安装软件包信号器

  • 我尝试了几种排序组合,但它不喜欢——让它工作的是手动编辑packages.config,将Newtonsoft.Json的版本锁定到4.5.7,以便后续安装不会破坏引用的版本。

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

    我们遇到的问题是,可以使用命令行工具强制Nuget安装软件包:

    我遇到了同样的问题,但我决定安装一个旧版本的SignalR。版本4.0(2012年2月)依赖于NewtonSoft>=4.0.7,并且在已安装RavenDB的情况下,该版本可以正确安装:

    Install-Package SignalR -Version 0.4.0 
    

    Raven和标准MVC模板也有同样的问题。我想要最新版本的Newtonsoft.Json,所以我以不同的方式解决了它。 我检查了RavenDB客户端的依赖关系,然后安装了它们的最新版本,第一个是Newtonsoft.Json和NLog 然后,我在数据包管理器控制台中安装了带有-IgnoreDependencies标志的数据包

    Install-Package -Id RavenDB.Client -IgnoreDependencies 
    

    效果很好。(我冒着一定的风险,认为RavenDB目前与最新的Newtonsoft.Json不兼容。但我是个胆大包天的人)

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