Instalación y administración de paquetes con la consola del Administrador de paquetes en Visual Studio (PowerShell)

La consola del Administrador de paquetes de Visual Studio usa comandos de PowerShell para interactuar con paquetes NuGet. Puede usar la consola cuando no hay ninguna manera de realizar una operación a través de la interfaz de usuario del Administrador de paquetes. También puede usar los 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 del comando de 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 usar en un entorno general de PowerShell. En concreto, cada entorno tiene comandos que no están disponibles en el otro entorno, y los comandos con el mismo nombre también pueden tener distintos argumentos específicos.

Disponibilidad de la consola

A partir de Visual Studio 2017, NuGet y el Administrador de paquetes NuGet se instalan automáticamente al crear cualquier . Cargas de trabajo relacionadas con NET en Visual Studio. También puede instalar el Administrador de paquetes seleccionando Componentes> individualesHerramientas de código>Administrador de paquetes NuGet en el Instalador de Visual Studio.

También puede buscar la extensión Administrador de paquetes NuGet en los menús Extensiones de herramientas>y Novedades 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 para 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 obtener más información, consulte Instalación y administración de paquetes NuGet en Visual Studio para Mac.

Búsqueda e instalación rápida de un paquete

Para usar 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> Consola delAdministrador> depaquetes NuGetPara abrir la ventana Consola del Administrador de paquetes.

  2. En la consola, escriba Find-Package con una palabra clave para buscar 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 Install-Package comando para instalar el paquete. Por ejemplo, para instalar el Elmah.MVC paquete, escriba:

    Install-Package Elmah.MVC
    

Para obtener 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 tener una solución abierta en Visual Studio con un nombre de ruta de acceso conocido. 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 encabezado de la consola

Para abrir la consola del Administrador de paquetes en Visual Studio, seleccione Herramientas> Consola del Administrador > depaquetes NuGetEn el menú superior. La consola es una ventana de Visual Studio que puede organizar y colocar a medida que quiera. 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 en un proyecto y origen de paquete específico, tal como se establece en el control en la parte superior de la ventana:

Captura de pantalla que muestra los controles de consola del Administrador de paquetes para el origen y el proyecto del paquete.

Si selecciona un origen de paquete o un proyecto distinto, estos valores predeterminados se cambian por los comandos subsiguientes. Para invalidar esta configuración sin cambiar los valores predeterminados, la mayoría de los comandos admiten las opciones -Source y -ProjectName.

Para administrar orígenes de paquetes, seleccione el icono de engranaje, que abre el cuadro de diálogoOpciones de>herramientas> Orígenes depaquetesdel Administrador> de paquetes NuGet. El control situado junto al selector del proyecto borra el contenido de la consola.

Captura de pantalla que muestra la configuración de la consola del Administrador de paquetes y borra los controles.

El botón situado en el extremo derecho interrumpe un comando de ejecución prolongada. Por ejemplo, si ejecuta Get-Package -ListAvailable -PageSize 500 se muestran los primeros 500 paquetes en el origen predeterminado (como nuget.org), lo que podría tardar varios minutos en ejecutarse.

Captura de pantalla que muestra el control de detención de la consola del Administrador de paquetes.

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 por una cadena:

    Find-Package <string> -StartWith
    
  • De forma 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 Install-Package console realiza las siguientes acciones:

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

De forma 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 -ProjectName opción . Por ejemplo, para agregar el Elmah.MVC paquete al proyecto no predeterminado UtilitiesLib , 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, use Get-Package para ver todos los paquetes instalados en el proyecto predeterminado.

Uninstall-Package realiza las siguientes acciones:

  • Quita las referencias al paquete del proyecto y a cualquier formato de administración. Las referencias ya no aparecen en el Explorador de soluciones. Es posible que tenga que recompilar el proyecto para quitar la referencia en la carpeta bin .
  • Invierte los cambios realizados en el paquete realizado enapp.config o web.config.
  • 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 funcionan dentro del contexto de Visual Studio y una solución o proyecto guardado y, a menudo, logran más que sus comandos de la CLI equivalentes. Por ejemplo, instalar un paquete a través de la consola agrega una referencia al proyecto, mientras que el comando de la CLI no lo hace. Por este motivo, los desarrolladores que trabajan en Visual Studio suelen preferir usar los comandos de consola en lugar de la CLI de NuGet.

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

Install-Package NuGet.CommandLine

El comando anterior instala la versión más reciente de la CLI de NuGet. Para instalar una versión específica, use la -Version opción . Por ejemplo, para instalar la versión 4.4.1, escriba:

Install-Package NuGet.CommandLine -Version 4.4.1

Después de instalar el NuGet.CommandLine paquete, puede ejecutar todos los comandos de la CLI de NuGet a través de la consola del 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 se muestra a continuación, el que genera vistas y controladores de MVC de ASP.NET:

Captura de pantalla que muestra los comandos de la CLI de NuGet disponibles después de instalar el paquete NuGet.CommandLine.

Configuración de un perfil de PowerShell de NuGet

Puede crear un perfil de PowerShell para que los comandos usados habitualmente estén disponibles en todos los contextos de PowerShell, por lo que no pierde la configuración de PowerShell entre sesiones. NuGet admite un perfil específico de NuGet, normalmente en %UserProfile%\Documents\WindowsPowerShell\NuGet_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, vea Sugerencia de Windows PowerShell:

Pasos siguientes