web-dev-qa-db-fra.com

Lister toutes les versions disponibles d'un package spécifique dans la console NuGet Package Manager

Quelle commande NuGet PowerShell renverra une liste de toutes les versions d'un package spécifique?

J'ai essayé ce qui suit, mais il ne renvoie qu'une seule version de NUnit avec un certain nombre d'autres packages (non) liés, chacun n'ayant qu'une seule version.

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

Remarque: je spécifie l'URI source car nous avons notre propre source de package interne comme télécommande par défaut.

Je crois comprendre que le -AllVersions switch devrait retirer chaque version de chaque package correspondant.

Ce que je n'arrive pas à comprendre, c'est:

  1. Suis-je en train de mal faire?
  2. Sinon, les responsables de projet (ou quelqu'un d'autre) suppriment-ils les anciennes versions de la source du package?
  3. S'ils le sont, pourquoi?
49
Aaron Torgerson

Depuis la version 3.x, get-package -ListAvailable -AllVersions fonctionnera toujours, mais émettra l'avertissement suivant concernant la dépréciation imminente:

Cette combinaison commande/paramètre est obsolète et sera supprimée dans la prochaine version. Veuillez envisager d'utiliser la nouvelle commande qui la remplace: "Find-Package [-Id] -AllVersions".

En plus, Find-Package prend en charge un -ExactMatch commutateur qui évitera les problèmes de correspondance générique qui -Filter a:

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

12
StuartLC

Votre source résout la version 1 du flux qui ne semble pas fonctionner avec -AllVersions (j'ai déposé un problème: https://github.com/NuGet/NuGetGallery/issues/56 )

L'utilisation du flux V2 fonctionne pour moi:

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

mais notez que -filter n'est pas pour un package spécifique mais plutôt comme un terme de recherche.

Pour contourner ce problème, j'utiliserais la saisie semi-automatique des onglets pour obtenir la liste des versions d'un package spécifique:

install-package -source https://nuget.org/api/v2/ -id nunit -version <tab>
60
Alexandre Dion

Pour étendre les solutions déjà fournies et répondre aux questions complémentaires de King King et JohnKoz, il est possible d'obtenir la liste complète des versions d'un package spécifique comme suit:

Find-Package -AllVersions -source https://nuget.org/api/v2/ Newtonsoft.Json -ExactMatch | foreach { $_.Versions } | Select-Object Version

Le package Newtonsoft.Json en est un exemple. Remplacez-le au besoin.

Cela fonctionne en obtenant d'abord toutes les versions pour un seul paquet (via -ExactMatch). Cela renvoie un objet de package qui a une propriété Versions, qui est un tableau d'objets de version. Le foreach itère sur tous ces éléments et le Select-Object garantit que chaque objet de version est sorti en une seule ligne (en sélectionnant uniquement sa propriété principale).

1
Erwin Bonsma