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:
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.
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 claveelmah
, ejecute el siguiente comando. Si ya conoce el nombre del paquete que desea, omita este paso.Find-Package elmah
Una vez que encuentre el nombre, use el comando
Install-Package
para instalar el paquete. Por ejemplo, para instalar el paqueteElmah.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:
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.
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.
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:
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.