Jak wyświetlić listę wszystkich zainstalowanych pakietów NuGet?

94

Jak wyświetlić listę wszystkich lokalnie zainstalowanych pakietów NuGet?

Czy istnieje odpowiednik NuGet RPM -qa? W Chocolatey jest chocolatey list -localonly, ale przez całe życie nie mogę znaleźć odpowiednika NuGet tego polecenia.

Rodopy
źródło

Odpowiedzi:

95

W konsoli Menedżera pakietów NuGet wprowadź następujące polecenie:

Get-Package

Spowoduje to albo wydrukowanie listy zainstalowanych pakietów, albo, jeśli nie ma ich, napisz następujący wiersz do konsoli:

PM> Get-Package
No packages installed.

Aby uzyskać więcej informacji, zapoznaj się z dokumentacją NuGet PowerShell .

Philip Allgaier
źródło
12
Czy istnieje sposób, aby to zrobić za pomocą nuget.exe?
bitbonk
2
Po uruchomieniu komendy Get-Package, nazwy pakietów są przycinane , kiedy mają więcej niż 32 characteres. Czy można zwiększyć kolumnę nazwy pakietu, aby w wynikach były wyświetlane pełne nazwy bez ich przycinania?
Ulysses Alves
12
Get-Package | Format-Table -AutoSizezrobi to
Mant101
57

Jeśli po prostu to zrobisz

Get-Package

wyświetli listę pakietów i miejsca, do których się odnoszą. Wyświetli te same pakiety w kółko, jeśli masz do nich wiele odwołań. Jeśli chcesz uzyskać czystą listę wszystkich pakietów zainstalowanych w rozwiązaniu, możesz to zrobić

Get-Package | select -Unique Id, Versions
bitbonk
źródło
16
Get-Package -ProjectName "Your.Project.Name"

Pokaże pakiety dla określonego projektu.

Zobacz także: Dokumentacja programu PowerShell konsoli Menedżera pakietów

Zauważ, że każdy projekt będzie miał plik packages.config, który jest używany do śledzenia zainstalowanych pakietów. Jeśli zostanie to zmienione (szczególnie jeśli zmienisz to wstecz), projekty mogą nie pobrać automatycznie poprawnej wersji pakietu. W takim przypadku zanotuj wymagane pakiety i zrób pakiet dezinstalacyjny, a następnie pakiet instalacyjny dla każdego.

Ponadto kopie zapasowe są Twoimi przyjaciółmi! ;)

neilhighley
źródło
12

W programie Visual Studio

  • przejdź do projektu lub rozwiązania w kwestii
  • kliknij prawym przyciskiem myszy, Zarządzaj pakietami NuGet ...
  • po lewej stronie zobaczysz „ Zainstalowane pakiety
  • kliknij na to, a zobaczysz listę
christiandev
źródło
9

Oprócz wszystkich podanych odpowiedzi istnieje również czysta lista w formacie XML wszystkich zainstalowanych pakietów w folderze głównym projektu programu Visual Studio: packages.config :

Tutaj wprowadź opis obrazu

wecky
źródło
Moim zdaniem najlepsza odpowiedź.
etiennejcharles
Dzięki nowej strukturze plików projektu wprowadzonej w programie Visual Studio 2017 w wersji 15.7 pakiety NuGet można (lub będzie w przypadku nowych projektów) przenosić do pliku projektu i nie znajdziesz packages.configpliku. Zobacz dokumentację firmy Microsoft .
Frode Evensen
Daje to jednak tylko jeden projekt na raz. Mam w swoim rozwiązaniu około 250 projektów, więc inne odpowiedzi są lepsze, jeśli nie chcesz przechodzić przez rozwiązania pojedynczo.
RosieC
5

Jak wyświetlić listę wszystkich zainstalowanych pakietów NuGet?

Zakładając, że NuGet jest poprawnie zainstalowany

Kliknij prawym przyciskiem myszy węzeł projektu i kliknij opcję Zarządzaj pakietami NuGet

Kliknij prawym przyciskiem myszy węzeł projektu

Zobacz listę zainstalowanych pakietów

Zobacz zainstalowane pakiety

Zameer Ansari
źródło
3

Jeśli masz zainstalowane środowisko uruchomieniowe .NET Core, możesz użyć polecenia dotnet list package w narzędziach interfejsu wiersza polecenia platformy .NET Core, aby pobrać zainstalowane pakiety dla danego rozwiązania lub projektu. Użyj go w ten sposób z wiersza poleceń systemu Windows:

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

Działa w projektach .NET Framework i .NET Core.

Uwaga: Aby to polecenie działało, rozwiązanie musi używać nowego formatu NuGet PackageReference do odwoływania się do pakietów NuGet. Migracja jest tak łatwa, jak kliknięcie prawym przyciskiem myszy packages.config i kliknięcie „Migrate packages.config do PackageReference ...”, a następnie przywrócenie pakietów przez utworzenie rozwiązania.

Shahin Dohan
źródło
Działa na platformie .NET Core, ale nie na platformie .NET 4.5. Rozwiązanie: przynajmniej dotyczy to mojego komputera.
Christian Casutt
1
@ChristianCasutt Właśnie go przetestowałem i działa dobrze na .NET Framework 4.5, jedyną rzeczą, jaką musiałem zrobić, była migracja z packages.config do PackageReference , a następnie przywrócenie pakietów NuGet przez zbudowanie rozwiązania.
Shahin Dohan
Czy nie ma różnicy między odwoływaniem się / użyciem a zainstalowaniem? Czy pakiety NuGet nie są instalowane globalnie, niezależnie od rozwiązań / projektów?
Peter Mortensen
@PeterMortensen Zakładam tutaj, że OP oznaczał zainstalowany dla projektu / rozwiązania. Globalnie pobrane pakiety są buforowane i nie sądzę, aby termin „zainstalowany” miałby sens w tym kontekście.
Shahin Dohan
0

Odpowiedź na pytanie „Czy istnieje sposób, aby to zrobić za pomocą programu NuGet.exe?” - bitbonk

Na podstawie powyższej odpowiedzi jstar . Użyłem \zamiast tego, /który pasuje bardziej do środowiska Windows, w którym nuget jest w domu. Moja edycja odpowiedzi została odrzucona, więc zamieszczam własną.

nuget list -Source c:\code\packages

Gdzie c:\codejest ścieżka do lokalnego repozytorium kodu. packagesFolder jest na takim samym poziomie jak rozwiązanie-file (* .sln).

KargWare
źródło
Ale to zawiera listę źródeł (skąd pochodzą pakiety), a nie zainstalowane pakiety (?).
Peter Mortensen