Bagaimana cara mendaftar semua paket NuGet yang terinstal?


94

Bagaimana cara mendaftar semua paket NuGet yang diinstal secara lokal?

Apakah ada NuGet yang setara RPM -qa? Di dalam Chocolatey ada chocolatey list -localonly, tetapi demi kehidupan saya, saya tidak dapat menemukan NuGet yang setara dengan perintah itu.

Jawaban:


95

Di Konsol Pengelola Paket NuGet , masukkan perintah berikut:

Get-Package

Ini akan mencetak daftar paket yang diinstal, atau jika tidak ada, tulis baris berikut ke konsol:

PM> Get-Package
No packages installed.

Untuk lebih jelasnya, lihat Referensi NuGet PowerShell .


12
Apakah ada cara untuk melakukan ini menggunakan nuget.exe?
bitbonk

2
Setelah menjalankan perintah Get-Package, nama paket dipangkas ketika memiliki lebih dari 32 karakter. Apakah mungkin untuk menambah kolom nama paket sehingga keluaran menampilkan nama lengkap tanpa memotongnya?
Ulysses Alves

12
Get-Package | Format-Table -AutoSizeakan melakukannya
Mant101

57

Jika Anda melakukannya

Get-Package

itu akan mendaftar paket-paket dan di mana mereka direferensikan. Ini akan mencantumkan paket yang sama berulang kali jika Anda telah mereferensikannya berkali-kali. Jika Anda ingin mendapatkan daftar bersih dari semua paket yang diinstal dalam solusi, Anda dapat melakukannya

Get-Package | select -Unique Id, Versions

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

Akan menampilkan paket untuk proyek yang ditentukan.

Lihat juga: Referensi PowerShell Konsol Pengelola Paket

Perhatikan bahwa setiap proyek akan memiliki file packages.config yang digunakan untuk melacak paket yang diinstal. Jika ini diubah (khususnya jika Anda mengubahnya mundur), proyek mungkin tidak secara otomatis mengunduh versi paket yang benar. Dalam hal ini, catat paket yang diperlukan dan lakukan uninstall-package, diikuti dengan install-package untuk masing-masing paket.

Juga, backup adalah teman Anda! ;)


12

Di Visual Studio,

  • buka Proyek atau Solusi yang dimaksud
  • klik kanan, Kelola Paket NuGet ...
  • di sebelah kiri, Anda akan melihat ' Paket Terpasang '
  • klik ini dan Anda akan melihat daftarnya

9

Selain semua jawaban yang diberikan, ada juga daftar bersih dalam format XML dari semua paket yang diinstal di folder akar proyek Visual Studio Anda: packages.config :

Masukkan deskripsi gambar di sini


Menurut saya, respon terbaik.
etiennejcharles

Dengan struktur file proyek baru yang diperkenalkan dalam Visual Studio 2017 versi 15.7, paket NuGet dapat (atau akan untuk proyek baru) dipindahkan ke file proyek, dan Anda tidak akan menemukan packages.configfile. Lihat dokumentasi Microsoft .
Frode Evensen

Ini hanya memberi Anda satu proyek pada satu waktu. Saya memiliki sekitar 250 proyek dalam solusi saya sehingga jawaban lain lebih baik jika Anda tidak ingin membahas solusi satu per satu.
RosieC



3

Jika Anda memiliki runtime .NET Core terinstal, Anda dapat menggunakan perintah paket dotnet list di alat .NET Core CLI untuk mengambil paket yang diinstal untuk solusi atau proyek tertentu. Gunakan seperti itu dari baris perintah Windows:

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

Ia bekerja pada proyek .NET Framework dan .NET Core.

Catatan: Agar perintah ini berfungsi, solusi harus menggunakan format NuGet PackageReference baru untuk mereferensikan paket NuGet. Migrasi semudah mengklik kanan packages.config, dan mengklik "Migrasi paket.config ke PackageReference ...", lalu pulihkan paket dengan membangun solusi.


Bekerja untuk .NET Core tetapi tidak untuk .NET 4.5 Solusi: Setidaknya ini yang terjadi di komputer saya.
Christian Casutt

1
@ChristianCasutt Saya baru saja mengujinya dan berfungsi dengan baik pada .NET Framework 4.5, satu-satunya hal yang harus saya lakukan adalah bermigrasi dari packages.config ke PackageReference , dan kemudian memulihkan paket nuget dengan membangun solusinya.
Shahin Dohan

Apakah tidak ada perbedaan antara referensi / penggunaan dan penginstalan? Bukankah paket NuGet diinstal secara global, terlepas dari solusi / proyek?
Peter Mortensen

@PeterMortensen Saya berasumsi di sini bahwa OP berarti diinstal untuk proyek / solusi. Secara global, paket yang diunduh di-cache, dan menurut saya istilah "diinstal" tidak masuk akal dalam konteks itu.
Shahin Dohan

0

Jawaban untuk "Apakah ada cara untuk melakukan ini menggunakan nuget.exe?" - bitbonk

Berdasarkan jawaban dari jstar di atas. Saya menggunakan \daripada /yang lebih cocok untuk lingkungan Windows di mana nuget ada di rumah. Hasil edit saya atas jawaban ditolak jadi saya memposting milik saya sendiri.

nuget list -Source c:\code\packages

Di mana c:\codejalur ke repositori kode lokal Anda. The packagesfolder pada tingkat yang sama seperti solusi-file Anda (* Sln).


Tetapi ini mencantumkan sumber (dari mana paket-paket itu berasal), bukan paket yang diinstal (?).
Peter Mortensen
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.