Baixe a versão antiga do pacote com o NuGet

907

Existe uma maneira de baixar uma versão anterior de um pacote com o NuGet , não a mais recente?

Ryudice
fonte

Respostas:

1117

Abra o Console do Gerenciador de Pacotes no Visual Studio - ele está em Ferramentas / Gerenciador de Pacotes NuGet / Console do Gerenciador de Pacotes. Em seguida, execute o comando Install-Package:

Install-Package Common.Logging -Version 1.2.0

Veja a referência de comando para detalhes.

Editar: para listar versões de um pacote, você pode usar o comando Get-Package com o argumento remoto e um filtro:

Get-Package -ListAvailable -Filter Common.Logging -AllVersions

Pressionando tab após a opção de versão no Install-Packagecomando, você obtém uma lista das últimas versões disponíveis.

PHeiberg
fonte
54
Para o benefício daqueles que usam o Nuget há algum tempo, mas nunca fizeram nada com ele a partir da linha de comando: Para executar os comandos do powershell mencionados pelo PHeiberg, convém abrir o Console do Gerenciador de Pacotes no Visual Studio - é em Ferramentas | Biblioteca Gerenciador de Pacotes | Console do Gerenciador de Pacotes .
Jonathan Moffatt
20
Este comando também deve estar disponível via interface do usuário. Agora, se um editor tiver uma versão beta, você poderá obter apenas a versão mais recente, que às vezes é instável.
Bart Verkoeijen
2
@bgever - a maioria dos editores cria pré-lançamentos para pacotes beta que não são considerados os "Mais recentes" na GUI. Desde que o editor use o controle de versão corretamente, a versão mais recente sempre deve ser estável. Isso não significa que ele não terá erros no entanto ...
Jesse Webb
3
Informações sobre dependência e examinando quais outras propriedades estão disponíveis: Get-Package -ListAvailable [-Source X] -Filter Common.Logging -AllVersions | selecione a versão, dependências (ou ' | get-member ' para ver todas as propriedades)
Curtis Yallop 25/01
2
Get-Package -ListAvailablese não listar todas as versões disponíveis para mim.
Roman Starkov 26/06
52

Navegue até sua página no índice do pacote, por exemplo. http://www.nuget.org/packages/Newtonsoft.Json/4.0.5

Siga as instruções de instalação fornecidas:

Install-Package Newtonsoft.Json -Version 4.0.5

Como alternativa para baixar o .nupkgarquivo, siga o link 'Download', por exemplo. https://www.nuget.org/api/v2/package/Newtonsoft.Json/4.0.5

Obsoleto: instale minha extensão Nutake do Chrome, que insere um link para download.

Coronel Panic
fonte
35

Outra opção é alterar o número da versão no packages.configarquivo. Isso fará com que o NuGet faça o download das DLLs para essa versão na próxima vez que você criar.

Morten Christiansen
fonte
1
Legal ... não pensei nisso. Eu acho que o NuGet Package Restore deve estar ativado para a solução.
Leniel Maccaferri
12
Isso não é suficiente para também alterar a referência de montagem automaticamente. O que funciona (se você tem pelo menos dois assemblies em sua solução) é o seguinte: 1. verifique se um assembly faz referência ao pacote, 2. edite a versão correta em packages.config, 3. gerencie os pacotes NuGet na solução, 3a. adicione o pacote a outro projeto, removendo-o do projeto original e confirme, 3b. inverta 3a e confirme. A etapa 3a adicionará a referência de montagem correta a outro projeto e a removerá do original. A etapa 3b adicionará a referência de montagem correta ao projeto original.
Jeroen Wiert Pluimers
25

No NuGet 3.x (Visual Studio 2015), você pode apenas selecionar a versão na interface do usuário

Interface do usuário do gerenciador de pacotes do NuGet 3

Yishai Galatzer
fonte
Bom quando funciona, mas já vi casos em que nem todas as versões antigas estão listadas lá.
UuDdLrLrSs 15/01
5

No NuGet 3.0, o Get-Packagecomando é preterido e substituído pelo Find-Packagecomando.

Find-Package Common.Logging -AllVersions

Consulte os documentos de referência do comando NuGet para obter detalhes.

Essa é a mensagem mostrada se você tentar usar o Get-Package no Visual Studio 2015.

This Command/Parameter combination has been deprecated and will be removed
in the next release. Please consider using the new command that replaces it: 
'Find-Package [-Id] -AllVersions'

Ou, como disse @Yishai, você pode usar o menu suspenso do número da versão na tela do NuGet no Visual Studio.

Walt Ritscher
fonte
3

Como a pergunta original não indica qual front-end do NuGet deve ser usado, gostaria de mencionar que o NuGet 3.5 adiciona suporte à atualização para uma versão específica através do cliente de linha de comando (que também funciona para downgrades):

NuGet.exe update Common.Logging -Version 1.2.0
CodeFox
fonte
0

Ao usar a interface do usuário do Nuget Package Manager, como mencionado acima, ajuda a desinstalar o pacote nuget primeiro. Sempre tenho problemas ao voltar para uma versão de pacote nuget se não desinstalar primeiro. Algumas referências não são limpas corretamente. Portanto, sugiro o seguinte fluxo de trabalho ao instalar um pacote nuget antigo por meio do Nuget Package Manager:

  1. Selecionou seu servidor / fonte de nuget
  2. Encontre e selecione o pacote de nuget que deseja instalar em uma versão mais antiga
  3. Desinstalar a versão atual
  4. Clique no menu suspenso instalação> Selecionar versão antiga> Clique em Instalar

insira a descrição da imagem aqui

Boa sorte :)

Anna Maule
fonte