¿Cómo hago una lista de todos los paquetes NuGet instalados?

94

¿Cómo se enumeran todos los paquetes NuGet instalados localmente?

¿Existe un equivalente de NuGet RPM -qa? Dentro de Chocolatey está el chocolatey list -localonly, pero por mi vida no puedo encontrar el equivalente NuGet de ese comando.

Ródope
fuente

Respuestas:

95

En la consola del administrador de paquetes NuGet , ingrese el siguiente comando:

Get-Package

Esto imprimirá una lista de paquetes instalados, o si no hay ninguno presente, escriba la siguiente línea en la consola:

PM> Get-Package
No packages installed.

Para obtener más detalles, consulte la referencia de PowerShell de NuGet .

Philip Allgaier
fuente
12
¿Hay alguna forma de hacer esto usando nuget.exe?
bitbonk
2
Después de ejecutar el comando Get-Package, los nombres de los paquetes se recortan cuando tienen más de 32 caracteres. ¿Es posible aumentar la columna del nombre del paquete para que la salida muestre los nombres completos sin recortarlos?
Ulysses Alves
12
Get-Package | Format-Table -AutoSizelo haré
Mant101
57

Si solo lo haces

Get-Package

enumerará los paquetes y dónde se hace referencia a ellos. Enumerará los mismos paquetes una y otra vez si se hace referencia a ellos muchas veces. Si desea obtener una lista limpia de todos los paquetes instalados en la solución, puede hacerlo

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

Mostrará los paquetes para el proyecto especificado.

Consulte también: Referencia de PowerShell de la consola del administrador de paquetes

Tenga en cuenta que cada proyecto tendrá un archivo packages.config que se usa para rastrear los paquetes instalados. Si esto se modifica (específicamente si lo modifica al revés), es posible que los proyectos no descarguen automáticamente la versión correcta del paquete. En ese caso, tome nota de los paquetes necesarios y realice un paquete de desinstalación, seguido de un paquete de instalación para cada uno.

Además, ¡las copias de seguridad son tus aliadas! ;)

Neilhighley
fuente
12

En Visual Studio,

  • ir al Proyecto o Solución en cuestión
  • clic derecho, Administrar paquetes NuGet ...
  • a la izquierda, verá ' Paquetes instalados '
  • haga clic en esto y verá la lista
christiandev
fuente
9

Además de todas las respuestas dadas, también hay una lista limpia en formato XML de todos los paquetes instalados en la carpeta raíz de su proyecto de Visual Studio: packages.config :

Ingrese la descripción de la imagen aquí

wecky
fuente
En mi opinión, la mejor respuesta.
etiennejcharles
Con la nueva estructura de archivos de proyecto introducida en Visual Studio 2017 versión 15.7, los paquetes NuGet pueden (o se moverán para nuevos proyectos) al archivo del proyecto y no encontrará un packages.configarchivo. Consulte la documentación de Microsoft .
Frode Evensen
Sin embargo, esto solo le da un proyecto a la vez. Tengo alrededor de 250 proyectos en mi solución, por lo que otras respuestas son mejores si no desea revisar las soluciones una a la vez.
RosieC
5

¿Cómo enumero todos los paquetes NuGet instalados?

Suponiendo que NuGet esté instalado correctamente

Haga clic con el botón derecho en el nodo Proyecto y haga clic en Administrar paquetes NuGet

Haga clic derecho en el nodo Proyecto

Ver lista de paquetes instalados

Ver paquetes instalados

Zameer Ansari
fuente
3

Si tiene el tiempo de ejecución de .NET Core instalado, puede usar el comando dotnet list package en las herramientas de la CLI de .NET Core para obtener los paquetes instalados para una solución o proyecto determinados. Úselo así desde la línea de comandos de Windows:

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

Funciona tanto en proyectos .NET Framework como .NET Core.

Nota: Para que este comando funcione, la solución debe usar el nuevo formato de NuGet PackageReference para hacer referencia a paquetes NuGet. La migración es tan fácil como hacer clic con el botón derecho en packages.config y hacer clic en "Migrar packages.config a PackageReference ...", luego restaurar los paquetes construyendo la solución.

Shahin Dohan
fuente
Funciona para .NET Core pero no para .NET 4.5 Solución: Al menos este es el caso en mi computadora.
Christian Casutt
1
@ChristianCasutt Acabo de probarlo y funciona bien en .NET Framework 4.5, lo único que tuve que hacer fue migrar de packages.config a PackageReference y luego restaurar los paquetes nuget construyendo la solución.
Shahin Dohan
¿No hay diferencia entre referenciar / usar e instalar? ¿No se instalan los paquetes de NuGet de forma global, independientemente de las soluciones o los proyectos?
Peter Mortensen
@PeterMortensen Estoy asumiendo aquí que el OP significaba instalado para un proyecto / solución. Globalmente, los paquetes descargados se almacenan en caché, y no creo que el término "instalado" tenga sentido en ese contexto.
Shahin Dohan
0

Responda a "¿Hay alguna forma de hacer esto usando nuget.exe?" - bitbonk

Basado en la respuesta de jstar anterior. He utilizado \en lugar de /que se ajusta más al entorno de Windows, donde Nuget está en casa. Mi edición de la respuesta fue rechazada, así que publico la mía.

nuget list -Source c:\code\packages

¿Dónde c:\codehay una ruta a su repositorio de código local? La packagescarpeta está en el mismo nivel que su archivo de solución (* .sln).

KargWare
fuente
Pero esto enumera las fuentes (de dónde provienen los paquetes), no los paquetes instalados (?).
Peter Mortensen