Instalación y administración de paquetes con la consola del Administrador de paquetes en Visual Studio (PowerShell)Install and manage packages with the Package Manager Console in 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.The NuGet Package Manager Console lets you use NuGet PowerShell commands to find, install, uninstall, and update NuGet packages. Usar la consola es necesarios cuando la interfaz de usuario del Administrador de paquetes no ofrece una manera de realizar una operación.Using the console is necessary in cases where the Package Manager UI does not provide a way to perform an operation. 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.To use nuget.exe CLI commands in the console, see Using the nuget.exe CLI in the console.

La consola está integrada en Visual Studio en Windows.The console is built into Visual Studio on Windows. No se incluye con Visual Studio para Mac ni con Visual Studio Code.It is not included with Visual Studio for Mac or Visual Studio Code.

Búsqueda e instalación de un paqueteFind and install a package

Por ejemplo, buscar e instalar un paquete se hace con tres pasos sencillos:For example, finding and installing a package is done with three easy steps:

  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.Open the project/solution in Visual Studio, and open the console using the Tools > NuGet Package Manager > Package Manager Console command.

  2. Busque el paquete que quiere instalar.Find the package you want to install. Si ya sabe cuál es, vaya al paso 3.If you already know this, skip to step 3.

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

    # 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.All operations that are available in the console can also be done with the NuGet CLI. 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.However, console commands operate within the context of Visual Studio and a saved project/solution and often accomplish more than their equivalent CLI commands. 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.For example, installing a package through the console adds a reference to the project whereas the CLI command does not. Por esta razón, los desarrolladores que trabajan en Visual Studio por lo general prefieren usar la consola en lugar de la CLI.For this reason, developers working in Visual Studio typically prefer using the console to the 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.Many console operations depend on having a solution opened in Visual Studio with a known path name. 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.If you have an unsaved solution, or no solution, you can see the error, "Solution is not opened or not saved. Asegúrese de tener una solución abierta y guardada".Please ensure you have an open and saved solution." Esto indica que la consola no puede determinar la carpeta de la solución.This indicates that the console cannot determine the solution folder. 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.Saving an unsaved solution, or creating and saving a solution if you don't have one open, should correct the error.

Apertura de la consola y sus controlesOpening the console and console controls

  1. Para abrir la consola en Visual Studio, use el comando Herramientas > Administrador de paquetes NuGet > Consola del Administrador de paquetes.Open the console in Visual Studio using the Tools > NuGet Package Manager > Package Manager Console command. 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).The console is a Visual Studio window that can be arranged and positioned however you like (see Customize window layouts in 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:By default, console commands operate against a specific package source and project as set in the control at the top of the window:

    Controles de la consola del Administrador de paquetes para un proyecto y origen de paquete

  3. Si selecciona un origen de paquete o un proyecto distinto, estos valores predeterminados se cambian por los comandos subsiguientes.Selecting a different package source and/or project changes those defaults for subsequent commands. Para invalidar esta configuración sin cambiar los valores predeterminados, la mayoría de los comandos admiten las opciones -Source y -ProjectName.To overrride these settings without changing the defaults, most commands support -Source and -ProjectName options.

  4. Para administrar los orígenes de paquete, seleccione el icono de engranaje.To manage package sources, select the gear icon. 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.This is a shortcut to the Tools > Options > NuGet Package Manager > Package Sources dialog box as described on the Package Manager UI page. Además, el control ubicado a la derecha del selector de proyectos borra el contenido de la consola:Also, the control to the right of the project selector clears the console's contents:

    Configuración de la consola del Administrador de paquetes y controles de borrado

  5. El botón que está más a la derecha interrumpe un comando de ejecución de larga duración.The rightmost button interrupts a long-running command. 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.For example, running Get-Package -ListAvailable -PageSize 500 lists the top 500 packages on the default source (such as nuget.org), which could take several minutes to run.

    Control de detención de la consola del Administrador de paquetes

Instala un paquete.Install a package

# 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.See 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:Installing a package in the console performs the same steps as described on What happens when a package is installed, with the following additions:

  • En esta ventana, la consola muestra los términos de licencia con un contrato implícito.The Console displays applicable license terms in its window with implied agreement. Si no está de acuerdo con los términos, debe desinstalar inmediatamente el paquete.If you do not agree to the terms, you should uninstall the package immediately.
  • 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.Also a reference to the package is added to the project file and appears in Solution Explorer under the References node, you need to save the project to see the changes in the project file directly.

Desinstala un paquete.Uninstall a package

# 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.See Uninstall-Package. Use Get-Package para ver todos los paquetes que están instalados actualmente en el proyecto predeterminado si necesita buscar un identificador.Use Get-Package to see all packages currently installed in the default project if you need to find an identifier.

Al desinstalar un paquete se llevan a cabo las acciones siguientes:Uninstalling a package performs the following actions:

  • Se quitan las referencias al paquete del proyecto (y todos los formatos de administración que estén en uso).Removes references to the package from the project (and whatever management format is in use). Las referencias ya no aparecen en el Explorador de soluciones.References no longer appear in Solution Explorer. (Es posible que tenga que recompilar el proyecto para ver que se quitó de la carpeta Bin).(You might need to rebuild the project to see it removed from the Bin folder.)
  • Invierte los cambios realizados en app.config o en web.config cuando se instaló el paquete.Reverses any changes made to app.config or web.config when the package was installed.
  • Quita las dependencias instaladas previamente si no queda ningún paquete que las use.Removes previously-installed dependencies if no remaining packages use those dependencies.

Actualización de un paqueteUpdate a package

# 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-PackageSee Get-Package and Update-Package

Búsqueda de un paqueteFind a package

# 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.See Find-Package. En Visual Studio 2013 y versiones anteriores, use Get-Package en su lugar.In Visual Studio 2013 and earlier, use Get-Package instead.

Disponibilidad de la consolaAvailability of the console

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.Starting in Visual Studio 2017, NuGet and the NuGet Package Manager are automatically installed when you select any .NET-related workloads; you can also install it individually by checking the Individual components > Code tools > NuGet package manager option in the Visual Studio installer.

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.Also, if you're missing the NuGet Package Manager in Visual Studio 2015 and earlier, check Tools > Extensions and Updates... and search for the NuGet Package Manager extension. Si no puede usar el instalador de extensiones en Visual Studio, puede descargar la extensión directamente de https://dist.nuget.org/index.html.If you're unable to use the extensions installer in Visual Studio, you can download the extension directly from https://dist.nuget.org/index.html.

Actualmente, la consola del Administrador de paquetes no está disponible con Visual Studio para Mac.The Package Manager Console is not presently available with Visual Studio for Mac. Sin embargo, hay comandos equivalentes disponibles a través de la CLI de NuGet.The equivalent commands, however, are available through the NuGet CLI. Visual Studio para Mac sí tiene una interfaz de usuario para administrar paquetes de NuGet.Visual Studio for Mac does have a UI for managing NuGet packages. Consulte Incluir un paquete NuGet en el proyecto.See Including a NuGet package in your project.

La consola del Administrador de paquetes no está incluida en Visual Studio Code.The Package Manager Console is not included with Visual Studio Code.

Extensión de la consola del Administrador de paquetesExtend the Package Manager Console

Algunos paquetes instalan comandos nuevos para la consola.Some packages install new commands for the console. Por ejemplo, MvcScaffolding crea comandos como Scaffold que se muestra a continuación, el que genera vistas y controladores de MVC de ASP.NET:For example, MvcScaffolding creates commands like Scaffold shown below, which generates ASP.NET MVC controllers and views:

Instalación y uso de MvcScaffold

Configuración de un perfil de PowerShell de NuGetSet up a NuGet PowerShell profile

Un perfil de PowerShell le permite usar los comandos de uso común disponibles cada vez que use PowerShell.A PowerShell profile lets you make commonly-used commands available wherever you use PowerShell. NuGet admite un perfil específico de NuGet que habitualmente se encuentra en esta ubicación:NuGet supports a NuGet-specific profile typically found at the following location:

%UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1

Para buscar el perfil, escriba $profile en la consola:To find the profile, type $profile in the console:

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

Para más detalles, consulte Perfiles de Windows PowerShell.For more details, refer to Windows PowerShell Profiles.

Uso de la CLI nuget.exe en la consolaUse the nuget.exe CLI in the console

Para que la CLI nuget.exe esté disponible en la consola del Administrador de paquetes, instale el paquete NuGet.CommandLine desde la consola:To make the nuget.exe CLI available in the Package Manager Console, install the NuGet.CommandLine package from the console:

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