2012-04-18 263 views
339

我想安裝一箇舊版本的軟件包(Newtonsoft.Json)。但NuGet回滾。如何通過NuGet安裝舊版本的軟件包?

PM> Install-Package Newtonsoft.Json -Version 4.0.5 
Successfully installed 'Newtonsoft.Json 4.0.5'. 
Install failed. Rolling back... 
Install-Package : Already referencing a newer version of 'Newtonsoft.Json'. 

任何幫助將不勝感激。

+3

可能的重複[下載nuget包的舊版本](http://stackoverflow.com/questions/5628689/download-old-version-of-package-with- nuget) – 2013-10-22 09:10:16

回答

526

嘗試以下操作:

Uninstall-Package Newtonsoft.Json -Force 

依次爲:

Install-Package Newtonsoft.Json -Version <press tab key for autocomplete> 
+0

twitterizer使用Newtonsoft.Json,我必須安裝較舊的版本而不卸載較新的版本。 PM> Uninstall-Package Newtonsoft.Json Uninstall-Package:無法卸載'Newtonsoft.Json 4.0.8',因爲'twitterizer 2.4.0.26532'依賴於它。 – 2012-04-19 05:41:40

+6

您沒有提到包的現有依賴關係,所以我沒有意識到這一點:嘗試將-Force開關添加到uninstall-package命令(如上所述) – 2012-04-19 08:16:13

+0

對不起,我錯過了。 -Force工作,我安裝了舊的。 非常感謝。 – 2012-04-19 08:25:34

46

我用Xavier的回答頗有幾分。我想補充一點,限制軟件包版本到指定的範圍在NuGet的最新版本中很容易和有用。

例如,如果你從來不去Newtonsoft.Json在你的項目中以往版本更新3.x.x,在packages.config文件更改相應package元素,看起來像這樣:

<package id="Newtonsoft.Json" version="3.5.8" allowedVersions="[3.0, 4.0)" targetFramework="net40" /> 

通知的allowedVersions屬性。這將限制該包的版本爲3.0包括)和4.0獨佔)之間的版本。然後,當您在整個解決方案上執行Update-Package時,您無需擔心從版本3.x.x更新的特定軟件包。

此功能的文檔是here

+4

防止NuGet更新破壞您的解決方案非常有用! (Microsoft.Net.Http v2.1.10,我在看着你......) – 2013-07-16 13:09:14

+6

我在看JQuery 1.9&2.0。 – 2014-05-01 13:29:26

241

截至Nuget 2.8有一個功能降級一個包。

Nuget 2.8 Release Notes

例子:

以下命令進入軟件包管理器控制檯將降級couchbase客戶端版本1.3.1.0

Update-Package CouchbaseNetClient -Version 1.3.1.0 

結果:

Updating 'CouchbaseNetClient' from version '1.3.3' to '1.3.1.0' in project [project name]. 
Removing 'CouchbaseNetClient 1.3.3' from [project name]. 
Successfully removed 'CouchbaseNetClient 1.3.3' from [project name]. 

Someth荷蘭國際集團要注意按以下crimbo:

「這種方法不適用於從一個預發佈版本的其他預發佈版本降級的工作 - 它僅適用於降級到發佈版本」

+13

這應該是現在被接受的答案,因爲它是最小的努力的最佳解決方案。 – Peter 2014-10-24 07:53:45

+0

是的,像魅力一樣工作,包括降級所有依賴 - 完美 – peter 2014-12-03 22:20:17

+7

不幸的是,這種方法不適用於從一個預發佈版本降級到另一個預發佈版本 - 它只適用於降級到發佈版本。 – crimbo 2014-12-11 19:58:15

11

現在,這是非常簡化版Visual Studio 2015。您可以在用戶界面本身內執行Downgrade/Upgrade,而無需在程序包管理器控制檯中執行命令。

  1. Right click on your projectgo to Manage Nuget Packages

  2. 看看下面的圖片。

    • Select your Package and Choose the Version,你想要安裝。

Nuget Package Manager window of Project

非常非常簡單,不是嗎? :)希望這會有所幫助...

+0

上突出顯示預發佈警告,那就太好了! – 2017-06-07 12:51:48

相關問題