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

La consola del Administrador de paquetes NuGet le permite usar comandos de PowerShell de NuGet para buscar, instalar, desinstalar y actualizar paquetes NuGet. Usar la consola es necesarios cuando la interfaz de usuario del Administrador de paquetes no ofrece una manera de realizar una operación. Para usar los comandos de la CLI nuget.exe en la consola, consulte la sección sobre el uso de la CLI nuget.exe en la consola.

La consola está integrada en Visual Studio en Windows. No se incluye con Visual Studio para Mac ni con Visual Studio Code.

Importante

Los comandos que se enumeran aquí son específicos de la consola del administrador de paquetes de Visual Studio y difieren de los comandos del módulo de Administración de paquetes que están disponibles en un entorno de PowerShell general. 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. Al usar la consola de Administración de paquetes en Visual Studio, se aplican los comandos y los argumentos que se documentan en este tema.

Búsqueda e instalación de un paquete

Por ejemplo, buscar e instalar un paquete se hace con tres pasos sencillos:

  1. Abra el proyecto o la solución en Visual Studio y abra la consola con el comando Herramientas > Administrador de paquetes NuGet > Consola del Administrador de paquetes.

  2. Busque el paquete que quiere instalar. Si ya sabe cuál es, vaya al paso 3.

    # Find packages containing the keyword "elmah"
    Find-Package elmah
    
  3. Ejecute el comando de instalación:

    # Install the Elmah package to the project named MyProject.
    Install-Package Elmah -ProjectName MyProject
    

Importante

Todas las operaciones disponibles en la consola también se puede realizar 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 esta razón, los desarrolladores que trabajan en Visual Studio por lo general prefieren usar la consola en lugar de la CLI.

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 no tiene ninguna solución, es posible que vea el error "La solución no está abierta ni guardada. Asegúrese de que tiene una solución abierta y guardada". Esto indica que la consola no puede determinar la carpeta de la solución. Al guardar una solución no guardada o al crear y guardar una solución si no hay ninguna abierta se debería corregir el error.

Apertura de la consola y sus controles

  1. Para abrir la consola en Visual Studio, use el comando Herramientas > Administrador de paquetes NuGet > Consola del Administrador de paquetes. La consola es una ventana de Visual Studio que se puede organizar y posicionar como quiera (consulte Personalizar los diseños de ventana de Visual Studio).

  2. 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:

    Package Manager Console controls for package source and project

  3. 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.

  4. Para administrar los orígenes de paquete, seleccione el icono de engranaje. Se trata de un acceso directo al cuadro de diálogo Herramientas > Opciones > Administrador de paquetes NuGet > Orígenes de paquetes tal como se describe en la página sobre la interfaz de usuario del Administrador de paquetes. Además, el control ubicado a la derecha del selector de proyectos borra el contenido de la consola:

    Package Manager Console settings and clear controls

  5. El botón que está más a la derecha interrumpe un comando de ejecución de larga duración. 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.

    Package Manager Console stop control

Instala un paquete.

# Add the Elmah package to the default project as specified in the console's project selector
Install-Package Elmah

# Add the Elmah package to a project named UtilitiesLib that is not the default
Install-Package Elmah -ProjectName UtilitiesLib

Consulte Install-Package.

Al instalar un paquete en la consola se llevan a cabo los mismos pasos que se describen en ¿Qué ocurre cuando se instala un paquete? con las siguientes incorporaciones:

  • En esta ventana, la consola muestra los términos de licencia con un contrato implícito. Si no está de acuerdo con los términos, debe desinstalar inmediatamente el paquete.
  • También se agrega una referencia al paquete en el archivo del proyecto y aparece en el Explorador de soluciones en el nodo Referencias. Para ver directamente los cambios en el archivo del proyecto, debe guardar el proyecto.

Desinstala un paquete.

# Uninstalls the Elmah package from the default project
Uninstall-Package Elmah

# Uninstalls the Elmah package and all its unused dependencies
Uninstall-Package Elmah -RemoveDependencies 

# Uninstalls the Elmah package even if another package depends on it
Uninstall-Package Elmah -Force

Consulte Uninstall-Package. Use Get-Package para ver todos los paquetes que están instalados actualmente en el proyecto predeterminado si necesita buscar un identificador.

Al desinstalar un paquete se llevan a cabo las acciones siguientes:

  • Se quitan las referencias al paquete del proyecto (y todos los formatos de administración que estén en uso). Las referencias ya no aparecen en el Explorador de soluciones. (Es posible que tenga que recompilar el proyecto para ver que se quitó de la carpeta Bin).
  • Invierte los cambios realizados en app.config o en web.config cuando se instaló el paquete.
  • Quita las dependencias instaladas previamente si no queda ningún paquete que las use.

Actualización de un paquete

# Checks if there are newer versions available for any installed packages
Get-Package -updates

# Updates a specific package using its identifier, in this case jQuery
Update-Package jQuery

# Update all packages in the project named MyProject (as it appears in Solution Explorer)
Update-Package -ProjectName MyProject

# Update all packages in the solution
Update-Package

Consulte Get-Package y Update-Package

Búsqueda de un paquete

# Find packages containing keywords
Find-Package elmah
Find-Package logging

# List packages whose ID begins with Elmah
Find-Package Elmah -StartWith

# By default, Get-Package returns a list of 20 packages; use -First to show more
Find-Package logging -First 100

# List all versions of the package with the ID of "jquery"
Find-Package jquery -AllVersions -ExactMatch

Consulte Find-Package. En Visual Studio 2013 y versiones anteriores, use Get-Package en su lugar.

Disponibilidad de la consola

A partir de Visual Studio 2017, NuGet y el Administrador de paquetes NuGet se instalan automáticamente cuando se selecciona cualquier carga de trabajo relacionada con .NET, también puede instalarla de manera individual si activa la opción Componentes individuales > Herramientas de código > Administrador de paquetes NuGet en el instalador de Visual Studio.

Además, si falta el Administrador de paquetes NuGet en Visual Studio 2015 y versiones anteriores, revise Herramientas > Extensiones y actualizaciones… y busque la extensión Administrador de paquetes NuGet. Si no puede usar el instalador de extensiones en Visual Studio, puede descargar la extensión directamente de https://dist.nuget.org/index.html.

Actualmente, la consola del Administrador de paquetes no está disponible con Visual Studio para Mac. Sin embargo, hay comandos equivalentes disponibles a través de la CLI de NuGet. Visual Studio para Mac sí tiene una interfaz de usuario para administrar paquetes de NuGet. Consulte Incluir un paquete NuGet en el proyecto.

La consola del Administrador de paquetes no está incluida en Visual Studio Code.

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:

Installing and using MvcScaffold

Configuración de un perfil de PowerShell de NuGet

Un perfil de PowerShell le permite usar los comandos de uso común disponibles cada vez que use PowerShell. NuGet admite un perfil específico de NuGet que habitualmente se encuentra en esta ubicación:

%UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1

Para buscar el perfil, escriba $profile en la consola:

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

Para más detalles, consulte Perfiles de Windows PowerShell.

Uso de la CLI nuget.exe en la consola

Para que la CLI nuget.exe esté disponible en la consola del Administrador de paquetes, instale el paquete NuGet.CommandLine desde la consola:

# Other versions are available, see https://www.nuget.org/packages/NuGet.CommandLine/
Install-Package NuGet.CommandLine -Version 4.4.1