Comment répertorier tous les packages NuGet installés?


92

Comment répertorier tous les packages NuGet installés localement?

Existe-t-il un équivalent NuGet de RPM -qa? Dans Chocolatey, il y a le chocolatey list -localonly, mais pour ma vie, je ne peux pas trouver l'équivalent NuGet de cette commande.

Réponses:


94

Dans la console NuGet Package Manager , entrez la commande suivante:

Get-Package

Cela imprimera une liste des packages installés ou, s'il n'y en a pas, écrivez la ligne suivante sur la console:

PM> Get-Package
No packages installed.

Pour plus de détails, consultez la référence NuGet PowerShell .


12
Existe-t-il un moyen de le faire en utilisant nuget.exe?
bitbonk

2
Après avoir exécuté la commande Get-Package, les noms des packages sont coupés lorsqu'ils ont plus de 32 caractères. Est-il possible d'augmenter la colonne du nom du package afin que la sortie affiche les noms complets sans les couper?
Ulysse Alves

11
Get-Package | Format-Table -AutoSizeva le faire
Mant101

54

Si tu fais juste

Get-Package

il listera les packages et où ils sont référencés. Il listera les mêmes packages encore et encore si vous les avez référencés plusieurs fois. Si vous souhaitez obtenir une liste propre de tous les packages installés dans la solution, vous pouvez le faire

Get-Package | select -Unique Id, Versions

16
Get-Package -ProjectName "Your.Project.Name"

Affiche les packages pour le projet spécifié.

Voir aussi: Référence PowerShell de la console du gestionnaire de package

Notez que chaque projet aura un fichier packages.config qui est utilisé pour suivre les packages installés. Si cela est modifié (en particulier si vous le modifiez à l'envers), les projets peuvent ne pas télécharger automatiquement la version correcte du package. Dans ce cas, notez les packages requis et effectuez un package de désinstallation, suivi d'un package d'installation pour chacun.

De plus, les sauvegardes sont votre ami! ;)


12

Dans Visual Studio,

  • aller au projet ou à la solution en question
  • clic droit, Gérer les packages NuGet ...
  • sur la gauche, vous verrez ' Packages installés '
  • cliquez dessus et vous verrez la liste

9

En plus de toutes les réponses données, il existe également une liste propre au format XML de tous les packages installés dans le dossier racine de votre projet Visual Studio: packages.config :

Entrez la description de l'image ici


À mon avis, la meilleure réponse.
etiennejcharles

Avec la nouvelle structure de fichier de projet introduite dans Visual Studio 2017 version 15.7, les packages NuGet peuvent (ou le seront pour les nouveaux projets) être déplacés vers le fichier de projet, et vous ne trouverez pas de packages.configfichier. Consultez la documentation Microsoft .
Frode Evensen le



2

Si le runtime .NET Core est installé, vous pouvez utiliser la commande dotnet list package dans les outils CLI .NET Core pour récupérer les packages installés pour une solution ou un projet donné. Utilisez-le comme ça depuis la ligne de commande Windows:

dotnet list "C:\Source\MySolution\MySolution.sln" package

Il fonctionne à la fois sur les projets .NET Framework et .NET Core.

Remarque: pour que cette commande fonctionne, la solution doit utiliser le nouveau format NuGet PackageReference pour référencer les packages NuGet. La migration est aussi simple que de cliquer avec le bouton droit de la souris sur packages.config et de cliquer sur "Migrer packages.config vers PackageReference ...", puis de restaurer les packages en créant la solution.


Fonctionne pour .NET Core mais pas pour .NET 4.5 Solution: au moins c'est le cas sur mon ordinateur.
Christian Casutt

1
@ChristianCasutt Je viens de le tester et cela fonctionne très bien sur .NET Framework 4.5, la seule chose que j'avais à faire était de migrer de packages.config vers PackageReference , puis de restaurer les packages nuget en construisant la solution.
Shahin Dohan le

N'y a-t-il pas une différence entre le référencement / utilisation et installé? Les packages NuGet ne sont-ils pas installés globalement, indépendamment des solutions / projets?
Peter Mortensen le

@PeterMortensen Je suppose ici que l'OP signifiait installé pour un projet / une solution. Globalement, les packages téléchargés sont mis en cache, et je ne pense pas que le terme «installé» ait un sens dans ce contexte.
Shahin Dohan le

0

Répondez à "Existe-t-il un moyen de le faire en utilisant nuget.exe?" - bitbonk

Basé sur la réponse de jstar ci-dessus. J'ai utilisé \au lieu de /qui s'adapte plus à l'environnement Windows où nuget est à la maison. Ma modification de la réponse a été rejetée, je publie donc la mienne.

nuget list -Source c:\code\packages

Où se c:\codetrouve un chemin vers votre référentiel de code local. Le packagesdossier est au même niveau que votre fichier-solution (* .sln).


Mais cela répertorie les sources (d'où proviennent les packages), pas les packages installés (?).
Peter Mortensen le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.