Nuget安装错误的包版本

时间:2013-02-22 19:22:07

标签: version nuget signalr

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

我使用了this command但是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卸载软件包,然后重新安装。与上述相同。

我做错了什么?

1 个答案:

答案 0 :(得分:4)

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

没有神奇或简单的方法来解决这个问题,但解决方法是从基础安装软件包。例如,首先安装Core组件,然后按照链的方式工作。

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  

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

希望这有帮助!