2013-02-22 101 views
3

SignalR版本1.0.0出來了,但我想安裝舊版本1.0.0-rc1。Nuget安裝錯誤的軟件包版本

我用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,但對於1.0.0,而不是1.0.0-RC1明確的NuGet被解析相關。當我查看我的項目中的參考資料時,它們是版本1.0.0。

我試着用uninstall-package Microsoft.AspNet.SignalR -force卸載軟件包,然後重新安裝。同上。

我在做什麼錯?

+0

偉大的問題的方式。爲了確保我們對rc版本進行嚴格的依賴關係,馬刺隊需要進行一些談判。 – 2013-02-22 20:40:18

回答

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 

我相信這一切都是正確的。如果我忘記了什麼,請告訴我。

希望這會有所幫助!

+1

啊,這是有道理的。 Microsoft.AspNet.SignalR是一個包含所有各種SignalR軟件包的元軟件包。當它解決了它的依賴關係時,它在它們的版本上使用> =約束而不是==約束,所以NuGet繼續並獲取最新版本。 – jcarpenter2 2013-02-22 21:06:57