Gerenciar pacotes com o Console do Gerenciador de Pacotes do Visual Studio (PowerShell)

O Console do Gerenciador de Pacotes no Visual Studio usa comandos do PowerShell para interagir com pacotes NuGet. Você poderá usar o console quando não houver outra forma de fazer uma operação por meio da interface do usuário do Gerenciador de Pacotes. Você também pode usar os comandos da CLI do dotnet ou CLI do NuGet no console.

Este artigo descreve como procurar, instalar, atualizar e desinstalar pacotes NuGet com comandos do PowerShell no Console do Gerenciador de Pacotes. Para obter a referência de comandos completa do PowerShell do Console do Gerenciador de Pacotes, consulte a Referência do PowerShell.

Importante

Os comandos e argumentos do PowerShell neste artigo são específicos para o Console do Gerenciador de Pacotes do Visual Studio. Esses comandos diferem dos comandos do módulo PackageManagement que você pode usar em um ambiente geral do PowerShell. Cada ambiente tem comandos que não estão disponíveis no outro, e comandos com o mesmo nome podem diferir em seus argumentos específicos.

Disponibilidade do console

A partir do Visual Studio 2017, o NuGet e o Gerenciador de Pacotes NuGet são instalados automaticamente quando você cria qualquer carga de trabalho relacionada ao .NET no Visual Studio. Você também pode instalar o Gerenciador de Pacotes selecionando Componentes individuais>Ferramentas de código>Gerenciador de pacotes NuGet no instalador do Visual Studio.

Você também pode procurar a extensão Gerenciador de Pacotes NuGet nos menus Ferramentas>Extensões e Atualizações ou Extensões. Se não é possível usar o instalador de extensões no Visual Studio, baixe a extensão diretamente de https://dist.nuget.org/index.html.

O Console do Gerenciador de Pacotes é integrado ao Gerenciador de Pacotes para Visua Studio no Windows. O Visual Studio Code e o Visual Studio para Mac não incluem o console. O Visual Studio para Mac tem uma interface do usuário para gerenciar pacotes NuGet, e os comandos de console equivalentes estão disponíveis por meio da CLI do NuGet. Para obter mais informações, consulte Instalar e gerenciar pacotes NuGet no Visual Studio para Mac.

Procurar e instalar rapidamente um pacote

Para usar o Console do Gerenciador de Pacotes para procurar e instalar rapidamente um pacote:

  1. Abra o projeto ou a solução no Visual Studio e selecione Ferramentas>Gerenciador de Pacotes NuGet>Console do Gerenciador de Pacotes para abrir a janela do Console do Gerenciador de Pacotes.

  2. No console, insira Find-Package com uma palavra-chave para procurar o pacote que você deseja instalar. Por exemplo, para procurar pacotes que contêm a palavra-chave elmah, execute o comando a seguir. Se você já sabe o nome do pacote desejado, ignore esta etapa.

    Find-Package elmah
    
  3. Depois de encontrar o nome, use o comando Install-Package para instalar o pacote. Por exemplo, para instalar o pacote Elmah.MVC, insira:

    Install-Package Elmah.MVC
    

Para obter mais detalhes sobre esses comandos, consulte as seções Procurar um pacote e Instalar um pacote.

Dica

Muitas operações de console dependem de ter uma solução com um nome de caminho conhecido aberta no Visual Studio. Se você tiver uma solução não salva ou nenhuma solução, verá o erro Solução não aberta ou não salva. Certifique-se de ter uma solução aberta e salva. Para corrigir o erro, crie e salve uma solução ou salve uma solução não salva.

Controles do console

Para abrir o Console do Gerenciador de Pacotes no Visual Studio, selecione Ferramentas>Gerenciador de Pacotes NuGet>Console do Gerenciador de Pacotes no menu superior. O console é uma janela do Visual Studio que você pode organizar e posicionar como quiser. Para obter mais informações, consulte Personalização de layouts de janela no Visual Studio.

Por padrão, os comandos do console operam em relação a um projeto e origem de pacote específicos, como mostrado nos controles na parte superior da janela:

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

A seleção de um projeto e/ou origem de pacote diferente altera os padrões para comandos subsequentes. Para substituir essas configurações para comandos individuais sem alterar os padrões, a maioria dos comandos do console é compatível com as opções -Source e -ProjectName.

Para gerenciar origens de pacotes, selecione o ícone de engrenagem, o qual abre a caixa de diálogo Ferramentas>Opções>Gerenciador de Pacotes NuGet>Origens de pacotes. O controle próximo ao seletor de projeto limpa o conteúdo do console:

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

O botão mais à direita interrompe um comando de execução longa. Por exemplo, a execução de Get-Package -ListAvailable -PageSize 500 lista os primeiros 500 pacotes disponíveis na origem padrão, como nuget.org, o que pode demorar vários minutos.

Screenshot that shows the Package Manager Console stop control.

Localizar um pacote

Para procurar um pacote na origem padrão, use Find-Package.

  • Para procurar e listar pacotes que contêm determinadas palavras-chave:

    Find-Package <keyword1>
    Find-Package <keyword2>
    
  • Para procurar e listar pacotes cujos nomes começam com uma sequência:

    Find-Package <string> -StartWith
    
  • Por padrão, Find-Package retorna uma lista de 20 pacotes. Use -First para mostrar mais pacotes. Por exemplo, para mostrar os primeiros 100 pacotes, use:

    Find-Package <keyword> -First 100
    
  • Para listar todas as versões de um determinado pacote:

    Find-Package <PackageName> -AllVersions -ExactMatch
    

Instalar um pacote

Para instalar um pacote no projeto padrão, use Install-Package <PackageName>. O comando do console Install-Package executa as seguintes ações:

  • Executa as etapas em O que acontece quando um pacote NuGet é instalado.
  • Exibe os termos de licença aplicáveis na janela do console com o contrato implícito. Se você não concordar com os termos, deverá desinstalar o pacote.
  • Adiciona uma referência ao pacote no arquivo de projeto e no Gerenciador de Soluções no nó Referências. Você deverá salvar o projeto para poder ver as alterações no arquivo do projeto.

Por padrão, Install-Package adiciona o pacote ao projeto padrão especificado pela janela do console. Para adicionar o pacote a um projeto que não é o padrão, use a opção -ProjectName. Por exemplo, para adicionar o pacote Elmah.MVC ao projeto não padrão UtilitiesLib, execute o seguinte comando:

Install-Package Elmah.MVC -ProjectName UtilitiesLib

Desinstalar um pacote

Para desinstalar um pacote do projeto padrão, use Uninstall-Package <PackageName>. Se precisar procurar o nome do pacote, use Get-Package para ver todos os pacotes atualmente instalados no projeto padrão.

Uninstall-Package executa as seguintes ações:

  • Remove as referências ao pacote do projeto e de qualquer formato de gerenciamento em uso. As referências não aparecem mais no Gerenciador de Soluções. Talvez seja necessário recompilar o projeto para remover a referência na pasta bin.
  • Reverte todas as alterações feitas pela instalação do pacote em app.config ou web.config.
  • Remove as dependências instaladas anteriormente se nenhum pacote restante usa essas dependências.

Para desinstalar um pacote e todas as suas dependências não utilizadas, execute:

Uninstall-Package <PackageName> -RemoveDependencies

Para desinstalar um pacote mesmo que outros pacotes dependam dele, execute:

Uninstall-Package <PackageName> -Force

Atualizar um pacote

Para atualizar um pacote, use Get-Package e Update-Package. Você pode executar os seguintes comandos:

  • Para verificar se há versões mais recentes disponíveis para quaisquer pacotes instalados:

    Get-Package -updates
    
  • Para atualizar um pacote específico:

    Update-Package <PackageName>
    
  • Para atualizar todos os pacotes em um projeto:

    Update-Package -ProjectName <ProjectName>
    
  • Para atualizar todos os pacotes na solução:

    Update-Package
    

Usar a CLI do NuGet no console

Você também pode fazer a maioria das operações do console com a CLI do NuGet. No entanto, os comandos do console do PowerShell operam dentro do contexto do projeto e solução do Visual Studio salvos e, muitas vezes, fazem mais do que seus comandos equivalentes da CLI do NuGet. Por exemplo, a instalação de um pacote via Install-Package adiciona uma referência ao arquivo de projeto, enquanto o comando da CLI do NuGet, não. Por esse motivo, os desenvolvedores que trabalham no Visual Studio normalmente preferem usar o console em vez da CLI do NuGet.

Para usar comandos da CLI do NuGet no Console do Gerenciador de Pacotes, instale o pacote NuGet.CommandLine.

Install-Package NuGet.CommandLine

O comando anterior instala a versão mais recente da CLI do NuGet. Para instalar uma versão específica, use a opção -Version: Por exemplo, para instalar a Versão 4.4.1, insira:

Install-Package NuGet.CommandLine -Version 4.4.1

Depois de instalar o pacote NuGet.CommandLine, você poderá executar todos os comandos da CLI do NuGet por meio do Console do Gerenciador de Pacotes.

Estender o Console do Gerenciador de Pacotes

Alguns pacotes instalam novos comandos no console. Por exemplo, MvcScaffolding cria comandos como Scaffold, que gera os controladores e exibições do ASP.NET MVC:

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

Configurar um perfil do PowerShell do NuGet

Você pode criar um perfil do PowerShell para disponibilizar seus comandos comumente usados em todos os contextos do PowerShell, para que você não perca suas configurações do PowerShell entre sessões. O NuGet oferece suporte a um perfil específico do NuGet, geralmente em %UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1.

Para encontrar a localização do seu perfil de usuário, insira$profile no console:

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

Para determinar se existe um perfil nesse local, insira test-path $profile. Se o comando retornar False, você precisará criar o perfil com o nome especificado nesse local. Para saber mais, consulte Perfis do Windows PowerShell.

Próximas etapas