[英]List all available versions of a specific package in NuGet Package Manager Console
哪個 NuGet PowerShell 命令將返回特定包的所有版本的列表?
我嘗試了以下方法,但它只返回一個版本的 NUnit 以及許多其他(非)相關包,每個包只有一個版本。
Get-Package -Source https://go.microsoft.com/fwlink/?LinkID=206669 -ListAvailable -Filter NUnit -AllVersions
注意:我指定了源 URI,因為我們有自己的內部包源作為我們的默認遠程。
我的理解是-AllVersions
開關應該拉回每個匹配包的每個版本。
我似乎無法弄清楚:
您的來源解析為似乎不適用於-AllVersions
的提要版本 1(我提交了一個問題: 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>
從版本 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
為了擴展已經提供的解決方案並解決King King 和 JohnKoz的后續問題,可以獲取特定軟件包的完整版本列表,如下所示:
Find-Package -AllVersions -source https://nuget.org/api/v2/ Newtonsoft.Json -ExactMatch | foreach { $_.Versions } | Select-Object Version
Newtonsoft.Json包就是一個例子。 根據需要更換它。
它的工作原理是首先獲取單個包的所有版本(通過-ExactMatch
)。 這將返回一個具有Versions屬性的包對象,它是一個版本對象數組。 foreach遍歷所有這些,而Select-Object確保每個版本對象都輸出為一行(僅通過選擇其主要屬性)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.