3

SignalR 1.0.0 版本已经出,但我想安装旧版本 1.0.0-rc1。

我使用了这个命令,但 NuGet 似乎忽略了版本标志并安装了 1.0.0。

PM> Install-Package Microsoft.AspNet.SignalR -Version 1.0.0-rc1 -Pre
Attempting to resolve dependency 'Microsoft.AspNet.SignalR.JS (≥ 1.0.0-rc1)'.
Attempting to resolve dependency 'jQuery (≥ 1.6.4)'.
Attempting to resolve dependency 'Microsoft.AspNet.SignalR.SystemWeb (≥ 1.0.0-rc1)'.
Attempting to resolve dependency 'Microsoft.AspNet.SignalR.Owin (≥ 1.0.0)'.
Attempting to resolve dependency 'Microsoft.AspNet.SignalR.Core (≥ 1.0.0)'.
Attempting to resolve dependency 'Newtonsoft.Json (≥ 4.5.11)'.
Attempting to resolve dependency 'Owin (≥ 1.0)'.
Attempting to resolve dependency 'Microsoft.Owin.Host.SystemWeb (≥ 1.0.0)'.
Attempting to resolve dependency 'Microsoft.Web.Infrastructure (≥ 1.0.0.0)'.
'Microsoft.AspNet.SignalR 1.0.0-rc1' already installed.
Successfully added 'Microsoft.AspNet.SignalR 1.0.0-rc1' to GeoMVC.

最后一行声称 1.0.0-rc1 已成功安装,但显然 NuGet 正在解析 1.0.0 而不是 1.0.0-rc1 的依赖关系。当我查看项目中的引用时,它们是 1.0.0 版。

我尝试使用卸载软件包uninstall-package Microsoft.AspNet.SignalR -force然后重新安装它。和上面一样。

我究竟做错了什么?

4

1 回答 1

4

发生这种情况的原因是因为 SignalR 1.0.0-rc2 上的依赖项都是 >= 1.0.0-rc2 所以当它自动解析包时,它会将它们解析为 rtw 版本。

没有神奇或简单的方法可以解决此问题,但解决方法是从基础安装软件包。例如,首先安装核心组件,然后按照自己的方式向上工作。

Install-Package Microsoft.AspNet.SignalR.JS -Version 1.0.0-rc2 -Pre  
Install-Package Microsoft.Owin.Host.SystemWeb -Version 1.0.0-rc2 -Pre  
Install-Package Microsoft.AspNet.SignalR.Core -Version 1.0.0-rc2 -Pre  
Install-Package Microsoft.AspNet.SignalR.Owin -Version 1.0.0-rc2 -Pre  
Install-Package Microsoft.AspNet.SignalR.SystemWeb -Version 1.0.0-rc2 -Pre  
Install-Package Microsoft.AspNet.SignalR-Version 1.0.0-rc2 -Pre  

我相信这一切都是正确的。如果我忘记了什么,请告诉我。

希望这可以帮助!

于 2013-02-22T20:37:32.800 回答