特定のパッケージのすべてのバージョンのリストを返すNuGet PowerShellコマンドは何ですか?
私は以下を試してみましたが、NUnitの1つのバージョンと、それぞれが1つのバージョンしか持っていない他の(非)関連パッケージの数だけを返します。
Get-Package -Source https://go.Microsoft.com/fwlink/?LinkID=206669 -ListAvailable -Filter NUnit -AllVersions
注:デフォルトURIとして独自の内部パッケージソースがあるため、ソースURIを指定します。
私の理解では、-AllVersions
switch should一致する各パッケージのすべてのバージョンをプルバックします。
私が理解できないように見えることは次のとおりです。
バージョン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
ソースは-AllVersionsで動作しないように見えるフィードのバージョン1に解決されます(私は問題を提出しました: https://github.com/NuGet/NuGetGallery/issues/56 )
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>
既に提供されているソリューションを拡張し、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は各バージョンオブジェクトが単一の行として出力されるようにします(メインプロパティを選択するだけです)。