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.

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 .


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

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! ;)


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ę

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


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



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.


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).


Ale to zawiera listę źródeł (skąd pochodzą pakiety), a nie zainstalowane pakiety (?).
Peter Mortensen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.