Administrar paquetes con la consola del administrador de paquetes de Visual Studio (PowerShell)

La consola del administrador de paquetes de Visual Studio utiliza comandos de PowerShell para interactuar con los paquetes NuGet. Puede utilizar la consola cuando no haya forma de realizar una operación a través de la interfaz de usuario del administrador de paquetes. También puedes utilizar comandos de la CLI de dotnet o de la CLI de NuGet en la consola.

En este artículo se describe cómo buscar, instalar, actualizar y desinstalar paquetes NuGet con comandos de PowerShell en la consola del administrador de paquetes. Para obtener la referencia completa de los comandos PowerShell de la Consola del administrador de paquetes, consulte Referencia de PowerShell.

Importante

Los comandos y argumentos de PowerShell de este artículo son específicos de la consola del administrador de paquetes de Visual Studio. Estos comandos difieren de los comandos del módulo PackageManagement que puede utilizar en un entorno PowerShell general. Cada entorno tiene comandos que no están disponibles en el otro, y los comandos con el mismo nombre pueden diferir en sus argumentos específicos.

Disponibilidad de la consola

A partir de Visual Studio 2017, NuGet y el administrador de paquetes de NuGet se instalan automáticamente al crear cualquier carga de trabajo relacionada con .NET en Visual Studio. También puede instalar el administrador de paquetes seleccionando Componentes individuales>Herramientas de código>Administrador de paquetes NuGet en el instalador de Visual Studio.

También puedes buscar la extensión Administrador de paquetes NuGet en los menús Herramientas>Extensiones y actualizaciones o Extensiones. Si no puede usar el instalador de extensiones en Visual Studio, puede descargar la extensión directamente de https://dist.nuget.org/index.html.

La consola del administrador de paquetes está integrada en el administrador de paquetes de Visual Studio en Windows. Visual Studio Code y Visual Studio para Mac no incluyen la consola. Visual Studio para Mac tiene una interfaz de usuario para administrar paquetes NuGet, y los comandos de consola equivalentes están disponibles a través de la CLI de NuGet. Para más información, consulte Instalar y administrar paquetes NuGet en Visual Studio para Mac.

Buscar e instalar rápidamente un paquete

Para utilizar la consola del administrador de paquetes para buscar e instalar rápidamente un paquete:

  1. Abra el proyecto o la solución en Visual Studio y seleccione Herramientas>Administrador de paquetes NuGet>Consola del administrador de paquetes para abrir la ventana Consola del administrador de paquetes.

  2. En la consola, escriba Find-Package, con una palabra clave para encontrar el paquete que desea instalar. Por ejemplo, para buscar paquetes que contienen la palabra clave elmah, ejecute el siguiente comando. Si ya conoce el nombre del paquete que desea, omita este paso.

    Find-Package elmah
    
  3. Una vez que encuentre el nombre, use el comando Install-Package para instalar el paquete. Por ejemplo, para instalar el paquete Elmah.MVC, escriba:

    Install-Package Elmah.MVC
    

Para más información sobre estos comandos, consulte las secciones Buscar un paquete e Instalar un paquete .

Sugerencia

Muchas operaciones de la consola dependen de que haya una solución con un nombre de ruta conocido abierta en Visual Studio. Si tiene una solución no guardada o ninguna solución, verá que la solución de error no se abre o no se guarda. Asegúrese de que tiene una solución abierta y guardada. Para corregir el error, cree y guarde una solución o guarde una solución no guardada.

Controles de consola

Para abrir la consola del administrador de paquetes en Visual Studio, selecciona Herramientas>Administrador de paquetes NuGet>Consola del administrador de paquetes en el menú superior. La consola es una ventana de Visual Studio que se puede organizar y colocar como se desee. Para obtener más información, vea Personalizar los diseños de ventana de Visual Studio.

De manera predeterminada, los comandos de la consola operan contra el origen del paquete y el proyecto específicos que se muestran en los controles de la parte superior de la ventana:

Screenshot that shows the Package Manager Console controls for package source and project.

La selección de un origen de paquete o proyecto diferente cambia los valores predeterminados para los comandos posteriores. Para invalidar esta configuración en comandos individuales sin cambiar los valores predeterminados, la mayoría de los comandos de la consola admiten las opciones -Source y -ProjectName.

Si quiere administrar los orígenes de los paquetes, seleccione el icono de engranaje, que abre el cuadro de diálogo Herramientas>Opciones>Administrador de paquetes NuGet>Orígenes de los paquetes. El control situado junto al selector de proyecto borra el contenido de la consola.

Screenshot that shows the Package Manager Console settings and clear controls.

El botón del extremo derecho interrumpe un comando de larga ejecución. Por ejemplo, ejecutar Get-Package -ListAvailable -PageSize 500 lista los 500 paquetes más disponibles en el origen predeterminado, como nuget.org, lo que podría llevar varios minutos.

Screenshot that shows the Package Manager Console stop control.

Búsqueda de un paquete

Para buscar un paquete en el origen predeterminado, use Find-Package.

  • Para buscar y enumerar paquetes que contienen determinadas palabras clave:

    Find-Package <keyword1>
    Find-Package <keyword2>
    
  • Para buscar y enumerar paquetes cuyo nombre comienza con una cadena:

    Find-Package <string> -StartWith
    
  • De manera predeterminada, Find-Package devuelve una lista de 20 paquetes. Use -First para mostrar más paquetes. Por ejemplo, para mostrar los primeros 100 paquetes, use:

    Find-Package <keyword> -First 100
    
  • Para enumerar todas las versiones de un paquete determinado:

    Find-Package <PackageName> -AllVersions -ExactMatch
    

Instalación de un paquete

Para instalar un paquete en el proyecto predeterminado, use Install-Package <PackageName>. El comando de consola Install-Package realiza las siguientes acciones:

  • Realiza los pasos indicados en ¿Qué ocurre cuando se instala un paquete NuGet?.
  • Muestra los términos de licencia aplicables en la ventana de la consola con un acuerdo implícito. Si no está de acuerdo con los términos, debe desinstalar el paquete.
  • Agrega una referencia al paquete en el archivo del proyecto y en el Explorador de soluciones en el nodo Referencias. Debe guardar el proyecto para poder ver los cambios en el archivo de proyecto.

De manera predeterminada, Install-Package agrega el paquete al proyecto predeterminado que especifica la ventana de consola. Para agregar el paquete a un proyecto que no es el valor predeterminado, use la opción -ProjectName. Por ejemplo, para agregar el paquete Elmah.MVC al proyecto UtilitiesLib no predeterminado, ejecute el siguiente comando:

Install-Package Elmah.MVC -ProjectName UtilitiesLib

Desinstala un paquete.

Para desinstalar un paquete del proyecto predeterminado, use Uninstall-Package <PackageName>. Si necesita encontrar el nombre del paquete, utilice Get-Package para ver todos los paquetes instalados en el proyecto predeterminado.

Uninstall-Package realiza las siguientes acciones:

  • Elimina las referencias al paquete del proyecto y de cualquier formato de administración. Las referencias ya no aparecen en el Explorador de soluciones. Es posible que tenga que reestructurar el proyecto para eliminar la referencia en la carpeta bin.
  • Anula cualquier cambio realizado en app.config o web.config al instalar el paquete.
  • Quita las dependencias instaladas previamente si no queda ningún paquete que las use.

Para desinstalar un paquete y todas sus dependencias sin usar, ejecute:

Uninstall-Package <PackageName> -RemoveDependencies

Para desinstalar un paquete incluso si otros paquetes dependen de él, ejecute:

Uninstall-Package <PackageName> -Force

Actualización de un paquete

Para actualizar un paquete, use Get-Package y Update-Package. Puede ejecutar los siguientes comandos:

  • Para comprobar si hay versiones más recientes disponibles para los paquetes instalados:

    Get-Package -updates
    
  • Para actualizar un paquete específico:

    Update-Package <PackageName>
    
  • Para actualizar todos los paquetes de un proyecto:

    Update-Package -ProjectName <ProjectName>
    
  • Para actualizar todos los paquetes de la solución:

    Update-Package
    

Uso de la CLI de NuGet en la consola

También puede realizar la mayoría de las operaciones de consola con la CLI de NuGet. Sin embargo, los comandos de la consola de PowerShell operan en el contexto del proyecto y la solución guardados de Visual Studio, y a menudo hacen más que sus comandos equivalentes de la CLI de NuGet. Por ejemplo, la instalación de un paquete a través de Install-Package agrega una referencia al archivo de proyecto, pero el comando NuGet CLI no lo hace. Por esta razón, los desarrolladores que trabajan en Visual Studio normalmente prefieren utilizar los comandos de la consola en lugar de la CLI de NuGet.

Para usar comandos de la CLI de NuGet en la consola de Administrador de paquetes, instale el paquete NuGet.CommandLine.

Install-Package NuGet.CommandLine

El comando anterior instala la última versión de la CLI de NuGet. Para instalar una versión concreta, utilice la opción -Version. Por ejemplo, para instalar la versión 4.4.1, escriba:

Install-Package NuGet.CommandLine -Version 4.4.1

Después de instalar el paquete NuGet.CommandLine, puede ejecutar todos los comandos de la CLI de NuGet a través de la consola de Administrador de paquetes.

Extensión de la consola del Administrador de paquetes

Algunos paquetes instalan comandos nuevos para la consola. Por ejemplo, MvcScaffolding crea comandos como Scaffold, que genera controladores y vistas ASP.NET MVC:

Screenshot that shows NuGet CLI commands available after installing the NuGet.CommandLine package.

Configuración de un perfil de PowerShell de NuGet

Puede crear un perfil de PowerShell para que los comandos que usa con frecuencia estén disponibles en todos los contextos de PowerShell, de modo que no pierda la configuración de PowerShell entre sesiones. NuGet admite un perfil específico de NuGet, normalmente en %UserProfile%\Documents\WindowsPowerShell\NNuGet_profile.ps1.

Para buscar la ubicación del perfil de usuario, escriba $profile en la consola:

$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1

Para determinar si existe un perfil en esa ubicación, escriba test-path $profile. Si el comando devuelve False, debe crear el perfil con el nombre especificado en esa ubicación. Para más información, consulte el Perfiles de Windows PowerShell.

Pasos siguientes