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.

Rhodope
sumber

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 .

Philip Allgaier
sumber
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
bitbonk
sumber
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! ;)

neilhighley
sumber
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
christiandev
sumber
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

wecky
sumber
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
5

Bagaimana cara saya mendaftar semua Paket NuGet yang terinstal?

Dengan asumsi NuGet dipasang dengan benar

Klik kanan Project node dan klik Kelola Paket NuGet

Klik kanan Project node

Lihat daftar paket yang diinstal

Lihat paket yang diinstal

Zameer Ansari
sumber
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.

Shahin Dohan
sumber
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).

KargWare
sumber
Tetapi ini mencantumkan sumber (dari mana paket-paket itu berasal), bukan paket yang diinstal (?).
Peter Mortensen