Como faço para listar todos os pacotes NuGet instalados?


92

Como listar todos os pacotes NuGet instalados localmente?

Existe um equivalente do NuGet RPM -qa? Dentro do Chocolatey existe o chocolatey list -localonly, mas por minha vida, não consigo encontrar o equivalente NuGet desse comando.

Respostas:


94

No console do gerenciador de pacotes NuGet , digite o seguinte comando:

Get-Package

Isso imprimirá uma lista de pacotes instalados ou, se nenhum estiver presente, gravará a seguinte linha no console:

PM> Get-Package
No packages installed.

Para obter mais detalhes, dê uma olhada na Referência do NuGet PowerShell .


12
Existe uma maneira de fazer isso usando nuget.exe?
bitbonk

2
Depois de executar o comando Get-Package, os nomes dos pacotes são cortados quando eles têm mais de 32 caracteres. É possível aumentar a coluna do nome do pacote para que a saída mostre os nomes completos sem cortá-los?
Ulysses Alves

11
Get-Package | Format-Table -AutoSizevai fazer isso
Mant101

54

Se você apenas fizer

Get-Package

ele irá listar os pacotes e onde eles são referenciados. Ele listará os mesmos pacotes repetidamente se você os tiver referenciado várias vezes. Se você deseja obter uma lista limpa de todos os pacotes instalados na solução, você pode fazer

Get-Package | select -Unique Id, Versions

16
Get-Package -ProjectName "Your.Project.Name"

Irá mostrar os pacotes para o projeto especificado.

Consulte também: Referência do PowerShell do console do gerenciador de pacotes

Observe que cada projeto terá um arquivo packages.config que é usado para rastrear os pacotes instalados. Se isso for alterado (especificamente se você alterar para trás), os projetos podem não baixar automaticamente a versão correta do pacote. Nesse caso, anote os pacotes necessários e faça um pacote de desinstalação, seguido de um pacote de instalação para cada um.

Além disso, os backups são seus amigos! ;)


12

No Visual Studio,

  • vá para o projeto ou solução em questão
  • clique com o botão direito, Gerenciar Pacotes NuGet ...
  • à esquerda, você verá ' Pacotes Instalados '
  • clique aqui e você verá a lista

9

Além de todas as respostas fornecidas, há também uma lista limpa em formato XML de todos os pacotes instalados na pasta raiz do projeto Visual Studio: packages.config :

Insira a descrição da imagem aqui


Na minha opinião, a melhor resposta.
etiennejcharles

Com a nova estrutura de arquivo de projeto introduzida no Visual Studio 2017 versão 15.7, os pacotes NuGet podem (ou irão para novos projetos) ser movidos para o arquivo de projeto e você não encontrará um packages.configarquivo. Consulte a documentação da Microsoft .
Frode Evensen,



2

Se você tiver o .NET Core runtime instalado, poderá usar o comando dotnet list package nas ferramentas .NET Core CLI para buscar pacotes instalados para uma determinada solução ou projeto. Use-o assim na linha de comando do Windows:

dotnet list "C:\Source\MySolution\MySolution.sln" package

Ele funciona em projetos .NET Framework e .NET Core.

Observação: para que esse comando funcione, a solução deve usar o novo formato NuGet PackageReference para fazer referência a pacotes NuGet. A migração é tão fácil quanto clicar com o botão direito em packages.config e clicar em "Migrate packages.config to PackageReference ..." e, em seguida, restaurar os pacotes ao construir a solução.


Funciona para .NET Core, mas não para .NET 4.5 Solução: pelo menos é o que acontece no meu computador.
Christian Casutt

1
@ChristianCasutt Acabei de testar e funciona bem no .NET Framework 4.5, a única coisa que tive que fazer foi migrar de packages.config para PackageReference e, em seguida, restaurar os pacotes nuget criando a solução.
Shahin Dohan

Não há diferença entre referenciar / usar e instalar? Os pacotes NuGet não são instalados globalmente, independentemente de soluções / projetos?
Peter Mortensen

@PeterMortensen Estou assumindo aqui que o OP significava instalado para um projeto / solução. Globalmente, os pacotes baixados são armazenados em cache, e não acho que o termo "instalado" faria sentido nesse contexto.
Shahin Dohan

0

Resposta para "Existe uma maneira de fazer isso usando nuget.exe?" - bitbonk

Com base na resposta do jstar acima. Eu usei em \vez de /qual se encaixa mais no ambiente do Windows, onde o nuget está em casa. Minha edição da resposta foi rejeitada, então postarei a minha.

nuget list -Source c:\code\packages

Onde c:\codeestá um caminho para seu repositório de código local. A packagespasta está no mesmo nível do seu arquivo de solução (* .sln).


Mas isso lista as fontes (de onde vêm os pacotes), não os pacotes instalados (?).
Peter Mortensen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.