Laden Sie die alte Version des Pakets mit NuGet herunter

907

Gibt es eine Möglichkeit, eine frühere Version eines Pakets mit NuGet herunterzuladen , nicht die neueste?

Ryudice
quelle

Antworten:

1117

Rufen Sie die Package Manager-Konsole in Visual Studio auf - sie befindet sich in Tools / NuGet Package Manager / Package Manager-Konsole. Führen Sie dann den Befehl Install-Package aus:

Install-Package Common.Logging -Version 1.2.0

Weitere Informationen finden Sie in der Befehlsreferenz .

Bearbeiten: Um Versionen eines Pakets aufzulisten, können Sie den Befehl Get-Package mit dem Remote-Argument und einem Filter verwenden:

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

Durch Drücken der Tabulatortaste nach der Versionsoption im Install-PackageBefehl erhalten Sie eine Liste der neuesten verfügbaren Versionen.

PHeiberg
quelle
54
Für diejenigen, die Nuget schon eine Weile verwenden, aber noch nie etwas über die Befehlszeile damit gemacht haben: Um die von PHeiberg erwähnten Powershell-Befehle auszuführen, sollten Sie die Package Manager-Konsole in Visual Studio aufrufen - sie befindet sich in Tools | Bibliothekspaket-Manager | Paketmanager-Konsole .
Jonathan Moffatt
20
Dieser Befehl sollte auch über die Benutzeroberfläche verfügbar sein. Wenn ein Publisher eine Beta-Version hat, können Sie nur die neueste Version erhalten, die manchmal instabil ist.
Bart Verkoeijen
2
@bgever - Die meisten Publisher erstellen Vorabversionen für Beta-Pakete, die nicht als "Neueste" in der GUI gelten. Solange der Publisher die Versionierung korrekt verwendet, sollte die neueste Version immer stabil sein. Das heißt aber nicht, dass es keine Bugs geben wird ...
Jesse Webb
3
Abhängigkeitsinformationen und Untersuchen, welche anderen Eigenschaften verfügbar sind: Get-Package -ListAvailable [-Source X] -Filter Common.Logging -AllVersions | Wählen Sie Version, Abhängigkeiten (oder ' | get-member ', um alle Eigenschaften
anzuzeigen
2
Get-Package -ListAvailablelistet nicht alle verfügbaren Versionen für mich auf.
Roman Starkov
52

Navigieren Sie zu seiner Seite im Paketindex, z. http://www.nuget.org/packages/Newtonsoft.Json/4.0.5

Befolgen Sie dann die angegebenen Installationsanweisungen:

Install-Package Newtonsoft.Json -Version 4.0.5

Alternativ können Sie zum Herunterladen der .nupkgDatei dem Link "Herunterladen" folgen, z. https://www.nuget.org/api/v2/package/Newtonsoft.Json/4.0.5

Veraltet: Installieren Sie meine Chrome-Erweiterung Nutake, die einen Download-Link einfügt.

Oberst Panik
quelle
35

Eine andere Möglichkeit besteht darin, die Versionsnummer in der packages.configDatei zu ändern . Dadurch wird NuGet beim nächsten Erstellen die DLLs für diese Version herunterladen.

Morten Christiansen
quelle
1
Netter ... habe nicht darüber nachgedacht. Ich denke, NuGet Package Restore muss für die Lösung aktiviert sein.
Leniel Maccaferri
12
Dies reicht nicht aus, um auch die Baugruppenreferenz automatisch zu ändern. Was jedoch funktioniert (wenn Sie mindestens zwei Assemblys in Ihrer Lösung haben), ist Folgendes: 1. Stellen Sie sicher, dass eine Assembly auf das Paket verweist, 2. Bearbeiten Sie die richtige Version in packages.config, 3. Verwalten Sie die NuGet-Pakete auf der Lösung, 3a. Fügen Sie das Paket einem anderen Projekt hinzu, entfernen Sie es aus dem ursprünglichen Projekt und bestätigen Sie dies. 3b. 3a umkehren und bestätigen. In Schritt 3a wird die richtige Baugruppenreferenz zu einem anderen Projekt hinzugefügt und aus dem Original entfernt. In Schritt 3b wird die richtige Baugruppenreferenz zum ursprünglichen Projekt hinzugefügt.
Jeroen Wiert Pluimers
25

In NuGet 3.x (Visual Studio 2015) können Sie einfach die Version über die Benutzeroberfläche auswählen

Benutzeroberfläche des NuGet 3-Paketmanagers

Yishai Galatzer
quelle
Schön, wenn es funktioniert, aber ich habe Fälle gesehen, in denen nicht alle alten Versionen dort aufgelistet sind.
UuDdLrLrSs
5

In NuGet 3.0 ist der Get-PackageBefehl veraltet und wird durch den Find-PackageBefehl ersetzt.

Find-Package Common.Logging -AllVersions

Weitere Informationen finden Sie in den Referenzdokumenten zu NuGet-Befehlen .

Dies ist die Meldung, die angezeigt wird, wenn Sie versuchen, Get-Package in Visual Studio 2015 zu verwenden.

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'

Oder wie @Yishai sagte, können Sie die Dropdown-Liste mit der Versionsnummer im NuGet-Bildschirm in Visual Studio verwenden.

Walt Ritscher
quelle
3

Da in der ursprünglichen Frage nicht angegeben ist, welches NuGet-Frontend verwendet werden soll, möchte ich erwähnen, dass NuGet 3.5 die Unterstützung für das Aktualisieren auf eine bestimmte Version über den Befehlszeilenclient hinzufügt (was auch für Downgrades funktioniert):

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

Wenn Sie die oben erwähnte Benutzeroberfläche von Nuget Package Manager verwenden, können Sie das Nuget-Paket zuerst deinstallieren. Ich habe immer Probleme, wenn ich auf eine Nuget-Paketversion zurückgreife, wenn ich nicht zuerst deinstalliere. Einige Referenzen werden nicht ordnungsgemäß gereinigt. Daher empfehle ich den folgenden Workflow, wenn Sie ein altes Nuget-Paket über den Nuget Package Manager installieren:

  1. Wählen Sie Ihren Nuget-Server / Ihre Nuget-Quelle aus
  2. Suchen und wählen Sie das Nuget-Paket aus, für das Sie eine ältere Version installieren möchten
  3. Deinstallieren Sie die aktuelle Version
  4. Klicken Sie auf das Dropdown-Menü Installieren> Ältere Version auswählen> Klicken Sie auf Installieren

Geben Sie hier die Bildbeschreibung ein

Viel Glück :)

Anna Maule
quelle