2012-08-08 64 views
40

NuGet PowerShell命令將返回特定程序包所有版本的列表?在NuGet程序包管理器控制檯中列出特定程序包的所有可用版本

我已經嘗試了以下操作,但它只返回NUnit的一個版本以及其他一些(un)相關軟件包,每個軟件包只有一個版本。

Get-Package -Source https://go.microsoft.com/fwlink/?LinkID=206669 -ListAvailable -Filter NUnit -AllVersions

注:我指定的源URI,因爲我們作爲默認的遠程我們自己的內部包源。

我的理解是,-AllVersions開關應該拉回每個匹配包的每個版本。

似乎我無法弄清楚的是:

  1. 我是不是做錯了?
  2. 如果不是,項目維護人員(或其他人)是否從軟件包源中刪除舊版本?
  3. 如果是,爲什麼?
+0

你說這是你的內包裝源,然後如果2)的情況下,爲什麼問3)在這裏?去問問他們! – manojlds 2012-08-08 16:37:25

+0

也許我不清楚:我提供的源URI是(顯然,請參閱Alexandre的回答)nuget v1軟件包源端點。我們的內部軟件包源只有內部開發的軟件包,所以我們需要提供-Source以查詢官方的NuGet軟件包源。希望有助於澄清。謝謝你的評論! – 2012-08-08 17:52:26

回答

6

由於3.x版本的,get-package -ListAvailable -AllVersions仍然可以工作,但會發出以下警告有關即將棄用:

此命令/參數組合已棄用,將在下一版本中刪除。請考慮使用替換它的新命令:'Find-Package [-Id] -AllVersions'。

此外,Find-Package支持的-ExactMatch開關,這將避免通配符匹配問題是-Filter有:

Find-Package NUnit -AllVersions -ExactMatch -Source https://api.nuget.org/v3/index.json

53

你的源解析爲飼料的1版本,它似乎並沒有與-AllVersions工作(我申請一個問題:https://github.com/NuGet/NuGetGallery/issues/563

使用V2飼料爲我的作品:

get-package -ListAvailable -AllVersions -filter nunit -source https://nuget.org/api/v2/ 

但請注意,-filter不是針對特定的包,而更像是一個搜索詞。

作爲一種變通方法,我會使用標籤自動完成獲取特定軟件包的版本列表:

install-package -source https://nuget.org/api/v2/ -id nunit -version <tab> 
+5

完美!我不知道標籤自動完成。這比運行所有這些命令更簡單得多。非常感謝。並感謝開放問題。 – 2012-08-08 17:57:39

+0

如果在update-package中有自動完成功能,那就太好了... – OzrenTkalcecKrznaric 2015-07-07 13:06:59

+3

這並不完美,我們無法看到列出的所有版本。在我的情況下,如果軟件包有4個以上的版本,則只顯示前4個,而剩餘的部分被截斷(用'...'代替)。它看起來非常漂亮,並且有3列整齊,但它不能顯示版本列中的所有版本。我不明白爲什麼這是可以接受的。因此,如果你想看到所有可用的版本,只需使用Nuget Package Manager(UI)而不是Nuget Package Console(至少在此時它在這種情況下變得無用)。 – 2016-11-18 03:48:20

相關問題