Scarica la vecchia versione del pacchetto con NuGet


907

Esiste un modo per scaricare una versione precedente di un pacchetto con NuGet , non l'ultima?

Risposte:


1117

Visualizza la console di Gestione pacchetti in Visual Studio: è in Strumenti / Console di gestione pacchetti NuGet / Gestione pacchetti. Quindi eseguire il comando Installa pacchetto:

Install-Package Common.Logging -Version 1.2.0

Vedere il riferimento del comando per i dettagli.

Modifica: per elencare le versioni di un pacchetto è possibile utilizzare il comando Get-Package con l'argomento remoto e un filtro:

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

Premendo il tasto tab dopo l'opzione versione nel Install-Packagecomando, si ottiene un elenco delle ultime versioni disponibili.


54
A beneficio di coloro che hanno usato Nuget per un po 'ma non ci hanno mai fatto nulla dalla riga di comando: Per eseguire i comandi PowerShell menzionati da PHeiberg vorrai far apparire la console di Package Manager in Visual Studio - è in Strumenti | Libreria Gestione pacchetti | Console Gestione pacchetti .
Jonathan Moffatt,

20
Questo comando dovrebbe essere disponibile anche tramite l'interfaccia utente. Ora se un editore ha una versione beta, puoi ottenere solo l'ultima versione, che a volte è instabile.
Bart Verkoeijen,

2
@bgever - La maggior parte dei publisher crea Prerelease per pacchetti beta che non sono considerati "Ultimi" nella GUI. Finché l'editore utilizza il controllo delle versioni correttamente, l'ultima versione dovrebbe essere sempre stabile. Ciò non significa che non avrà bug ...
Jesse Webb,

3
Informazioni sulla dipendenza ed esame delle altre proprietà disponibili: Get-Package -ListAvailable [-Source X] -Filter Common.Logging -AllVersions | seleziona la versione, le dipendenze (o ' | get-member ' per vedere tutte le proprietà)
Curtis Yallop

2
Get-Package -ListAvailablenon non elencare tutte le versioni disponibili per me.
Roman Starkov,


35

Un'altra opzione è quella di modificare il numero di versione nel packages.configfile. Ciò farà sì che NuGet scarichi le dll per quella versione alla successiva compilazione.


1
Bello ... non ci ho pensato. Immagino che il ripristino del pacchetto NuGet debba essere abilitato per la soluzione.
Leniel Maccaferri,

12
Ciò non è sufficiente per modificare automaticamente anche il riferimento dell'assieme. Ciò che funziona (se hai in affitto due assembly nella tua soluzione) è questo: 1. assicurati che un assembly faccia riferimento al pacchetto, 2. modifica la versione corretta in packages.config, 3. gestisci i pacchetti NuGet sulla soluzione, 3a. aggiungi il pacchetto a un altro progetto, rimuovendolo dal progetto originale e confermalo, 3b. invertire 3a e confermare. Il passaggio 3a aggiungerà il riferimento di assieme corretto a un altro progetto e lo rimuoverà dall'originale. Il passaggio 3b aggiungerà il riferimento dell'assembly corretto al progetto originale.
Jeroen Wiert Pluimers,

25

In NuGet 3.x (Visual Studio 2015) puoi semplicemente selezionare la versione dall'interfaccia utente

Interfaccia utente del gestore pacchetti NuGet 3


Bello quando funziona, ma ho visto casi in cui non tutte le vecchie versioni sono elencate lì.
UuDdLrLrSs

5

In NuGet 3.0 il Get-Packagecomando è obsoleto e sostituito con il Find-Packagecomando.

Find-Package Common.Logging -AllVersions

Vedere i documenti di riferimento del comando NuGet per i dettagli.

Questo è il messaggio visualizzato se si tenta di utilizzare Get-Package in 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'

O come ha detto @Yishai, è possibile utilizzare il menu a discesa del numero di versione nella schermata NuGet in Visual Studio.


3

Poiché la domanda originale non indica quale frontend NuGet debba essere utilizzato, vorrei menzionare che NuGet 3.5 aggiunge il supporto per l'aggiornamento a una versione specifica tramite il client della riga di comando (che funziona anche per i downgrade):

NuGet.exe update Common.Logging -Version 1.2.0

0

Utilizzando l'interfaccia utente di Nuget Package Manager come menzionato sopra, è necessario disinstallare prima il pacchetto nuget. Ho sempre problemi quando torno su una versione del pacchetto nuget se non disinstallo prima. Alcuni riferimenti non vengono puliti correttamente. Quindi suggerisco il seguente flusso di lavoro durante l'installazione di un vecchio pacchetto nuget tramite Nuget Package Manager:

  1. Hai selezionato il tuo server / sorgente nuget
  2. Trova e seleziona il pacchetto nuget che desideri installare una versione precedente
  3. Disinstallare la versione corrente
  4. Fai clic sul menu a discesa Installa> Seleziona versione precedente> Fai clic su Installa

inserisci qui la descrizione dell'immagine

In bocca al lupo :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.