Wie liste ich alle installierten NuGet-Pakete auf?

92

Wie listet man alle lokal installierten NuGet-Pakete auf?

Gibt es ein NuGet-Äquivalent von RPM -qa? In Chocolatey gibt es das chocolatey list -localonly, aber für mein Leben kann ich das NuGet-Äquivalent dieses Befehls nicht finden.

Rhodope
quelle

Antworten:

94

Geben Sie in der NuGet Package Manager-Konsole den folgenden Befehl ein:

Get-Package

Dadurch wird entweder eine Liste der installierten Pakete ausgedruckt, oder wenn keine vorhanden sind, schreiben Sie die folgende Zeile in die Konsole:

PM> Get-Package
No packages installed.

Weitere Informationen finden Sie in der NuGet PowerShell-Referenz .

Philip Allgaier
quelle
12
Gibt es eine Möglichkeit, dies mit nuget.exe zu tun?
Bitbonk
2
Nach dem Ausführen des Befehls Get-Package, werden Pakete Namen getrimmt , wenn sie mehr als 32 characteres haben. Ist es möglich, die Spalte für den Paketnamen so zu vergrößern, dass in der Ausgabe die vollständigen Namen angezeigt werden, ohne sie zu kürzen?
Ulysses Alves
11
Get-Package | Format-Table -AutoSizewerde es tun
Mant101
54

Wenn du es nur tust

Get-Package

Es werden die Pakete aufgelistet und wo sie referenziert werden. Es werden dieselben Pakete immer wieder aufgelistet, wenn Sie sie mehrmals referenziert haben. Wenn Sie eine saubere Liste aller in der Lösung installierten Pakete erhalten möchten, können Sie dies tun

Get-Package | select -Unique Id, Versions
Bitbonk
quelle
16
Get-Package -ProjectName "Your.Project.Name"

Zeigt die Pakete für das angegebene Projekt an.

Siehe auch: PowerShell-Referenz für die Package Manager-Konsole

Beachten Sie, dass jedes Projekt über eine Datei packages.config verfügt, mit der installierte Pakete verfolgt werden. Wenn dies geändert wird (insbesondere wenn Sie es rückwärts ändern), laden die Projekte möglicherweise nicht automatisch die richtige Paketversion herunter. Notieren Sie sich in diesem Fall die erforderlichen Pakete und führen Sie ein Deinstallationspaket durch, gefolgt von einem Installationspaket für jedes Paket.

Auch Backups sind dein Freund! ;)

neilhighley
quelle
12

In Visual Studio

  • Gehen Sie zu dem betreffenden Projekt oder der betreffenden Lösung
  • Klicken Sie mit der rechten Maustaste auf NuGet-Pakete verwalten ...
  • Auf der linken Seite sehen Sie " Installierte Pakete ".
  • Klicken Sie darauf und Sie sehen die Liste
christiandev
quelle
9

Zusätzlich zu allen gegebenen Antworten gibt es auch eine saubere Liste aller installierten Pakete in Ihrem Visual Studio-Projektstammordner im XML-Format: packages.config :

Geben Sie hier die Bildbeschreibung ein

wecky
quelle
Meiner Meinung nach die beste Antwort.
Etiennejcharles
Mit der neuen Projektdateistruktur, die in Visual Studio 2017 Version 15.7 eingeführt wurde, können (oder werden) NuGet-Pakete in die Projektdatei verschoben werden, und Sie finden keine packages.configDatei. Siehe Microsoft-Dokumentation .
Frode Evensen
5

Wie liste ich alle installierten NuGet-Pakete auf?

Vorausgesetzt, NuGet ist ordnungsgemäß installiert

Klicken Sie mit der rechten Maustaste auf den Knoten Projekt und klicken Sie auf NuGet-Pakete verwalten

Klicken Sie mit der rechten Maustaste auf den Projektknoten

Siehe Liste der installierten Pakete

Siehe installierte Pakete

Zameer
quelle
2

Wenn Sie die .NET Core-Laufzeit installiert haben, können Sie den Befehl dotnet list package in den .NET Core CLI-Tools verwenden, um installierte Pakete für eine bestimmte Lösung oder ein bestimmtes Projekt abzurufen. Verwenden Sie es wie folgt über die Windows-Befehlszeile:

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

Es funktioniert sowohl in .NET Framework- als auch in .NET Core-Projekten.

Hinweis: Damit dieser Befehl funktioniert, muss die Lösung das neue NuGet PackageReference-Format zum Verweisen auf NuGet-Pakete verwenden. Die Migration ist so einfach wie das Klicken mit der rechten Maustaste auf packages.config und das Klicken auf "Migrieren von packages.config nach PackageReference ..." und das Wiederherstellen von Paketen durch Erstellen der Lösung.

Shahin Dohan
quelle
Funktioniert für .NET Core, jedoch nicht für .NET 4.5. Lösung: Zumindest ist dies auf meinem Computer der Fall.
Christian Casutt
1
@ChristianCasutt Ich habe es gerade getestet und es funktioniert einwandfrei unter .NET Framework 4.5. Ich musste nur von packages.config nach PackageReference migrieren und dann Nuget-Pakete durch Erstellen der Lösung wiederherstellen.
Shahin Dohan
Gibt es nicht einen Unterschied zwischen Referenzierung / Verwendung und Installation? Sind NuGet-Pakete nicht global installiert, unabhängig von Lösungen / Projekten?
Peter Mortensen
@PeterMortensen Ich gehe hier davon aus, dass das OP für ein Projekt / eine Lösung installiert war. Weltweit werden die heruntergeladenen Pakete zwischengespeichert, und ich denke nicht, dass der Begriff "installiert" in diesem Zusammenhang sinnvoll wäre.
Shahin Dohan
0

Antwort auf "Gibt es eine Möglichkeit, dies mit nuget.exe zu tun?" - Bitbonk

Basierend auf der Antwort von jstar oben. Ich habe \stattdessen verwendet, /was mehr in die Windows-Umgebung passt, in der Nuget zu Hause ist. Meine Bearbeitung der Antwort wurde abgelehnt, daher poste ich meine eigene.

nuget list -Source c:\code\packages

Wo c:\codeist ein Pfad zu Ihrem lokalen Code-Repository? Der packagesOrdner befindet sich auf derselben Ebene wie Ihre Lösungsdatei (* .sln).

KargWare
quelle
Dies listet jedoch die Quellen auf (woher die Pakete stammen), nicht die installierten Pakete (?).
Peter Mortensen