Pobierz starą wersję pakietu za pomocą NuGet


907

Czy istnieje sposób na pobranie poprzedniej wersji pakietu za pomocą NuGet , a nie najnowszej?

Odpowiedzi:


1117

Wyświetl konsolę Menedżera pakietów w programie Visual Studio - znajduje się ona w menu Narzędzia / Menedżer pakietów NuGet / Konsola Menedżera pakietów. Następnie uruchom polecenie Install-Package:

Install-Package Common.Logging -Version 1.2.0

Szczegółowe informacje zawiera dokumentacja poleceń .

Edycja: Aby wyświetlić listę wersji pakietu, możesz użyć polecenia Get-Package ze zdalnym argumentem i filtrem:

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

Naciskając klawisz tab po opcji wersji w Install-Packagepoleceniu, otrzymujesz listę najnowszych dostępnych wersji.


54
Z korzyścią dla tych, którzy używają Nuget przez jakiś czas, ale nigdy nic z nim nie zrobili z wiersza poleceń: Aby uruchomić polecenia PowerShell, o których wspomina PHeiberg, będziesz chciał uruchomić konsolę Menedżera pakietów w Visual Studio - to w Narzędziach | Biblioteka Menedżer pakietów | Konsola Menedżera pakietów .
Jonathan Moffatt

20
To polecenie powinno być również dostępne za pośrednictwem interfejsu użytkownika. Teraz, jeśli wydawca ma wersję beta, możesz uzyskać tylko najnowszą wersję, która czasami jest niestabilna.
Bart Verkoeijen

2
@bgever - Większość wydawców tworzyć Prereleases beta pakietów, które nie są uważane za „Najnowsze” w GUI. Tak długo, jak wydawca poprawnie używa wersjonowania, najnowsza wersja powinna być zawsze stabilna. Nie oznacza to jednak, że nie będzie zawierać błędów ...
Jesse Webb

3
Informacje o zależnościach i sprawdzanie, jakie inne właściwości są dostępne: Get-Package -ListAvailable [-Source X] -Filter Common.Logging -AllVersions | wybierz wersję, zależności (lub „ | get-member ”, aby zobaczyć wszystkie właściwości)
Curtis Yallop

2
Get-Package -ListAvailableczy nie wymienić wszystkie dostępne wersje dla mnie.
Roman Starkov


35

Inną opcją jest zmiana numeru wersji w packages.configpliku. Spowoduje to, że NuGet pobierze biblioteki dll dla tej wersji przy następnej kompilacji.


1
Fajny ... nie myślałem o tym. Wydaje mi się jednak, że dla tego rozwiązania musi być włączone przywracanie pakietów NuGet .
Leniel Maccaferri

12
Nie wystarczy to również do automatycznej zmiany odniesienia do zespołu. Działa jednak (jeśli masz w leasingu dwa zestawy w swoim rozwiązaniu): 1. upewnij się, że jeden zestaw odwołuje się do pakietu, 2. edytuj poprawną wersję w packages.config, 3. zarządzaj pakietami NuGet w rozwiązaniu, 3a. dodaj pakiet do innego projektu, usuwając go z oryginalnego projektu, i potwierdź to, 3b. odwróć 3a i potwierdź. Krok 3a doda prawidłowe odniesienie do złożenia do innego projektu i usunie go z oryginału. Krok 3b doda prawidłowe odniesienie do złożenia do oryginalnego projektu.
Jeroen Wiert Pluimers

25

W NuGet 3.x (Visual Studio 2015) możesz po prostu wybrać wersję z interfejsu użytkownika

Interfejs menedżera pakietów NuGet 3


Miło, gdy to działa, ale widziałem przypadki, w których nie wszystkie stare wersje są tam wymienione.
UuDdLrLrSs

5

W NuGet 3.0 Get-Packagepolecenie jest przestarzałe i zastąpione Find-Packagepoleceniem.

Find-Package Common.Logging -AllVersions

Szczegółowe informacje można znaleźć w dokumentacji referencyjnej poleceń NuGet .

Jest to komunikat wyświetlany, jeśli próbujesz użyć pakietu Get-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'

Lub, jak powiedział @Yishai, możesz użyć listy numerów wersji na ekranie NuGet w Visual Studio.


3

Ponieważ w pierwotnym pytaniu nie podano, z którego interfejsu NuGet należy korzystać, chciałbym wspomnieć, że NuGet 3.5 dodaje obsługę aktualizacji do konkretnej wersji za pośrednictwem klienta wiersza poleceń (który działa również w przypadku obniżenia wersji):

NuGet.exe update Common.Logging -Version 1.2.0

0

Korzystając z interfejsu menedżera pakietów Nuget, jak wspomniano powyżej, pomaga najpierw odinstalować pakiet nuget. Zawsze mam problemy podczas powrotu do wersji pakietu nuget, jeśli nie odinstaluję go najpierw. Niektóre odwołania nie są poprawnie czyszczone. Sugeruję następujący przepływ pracy podczas instalowania starego pakietu nuget za pomocą Menedżera pakietów Nuget:

  1. Wybierz serwer / źródło nuget
  2. Znajdź i wybierz pakiet nuget, w którym chcesz zainstalować starszą wersję
  3. Odinstaluj bieżącą wersję
  4. Kliknij menu rozwijane instalacji> Wybierz starszą wersję> Kliknij Zainstaluj

wprowadź opis zdjęcia tutaj

Powodzenia :)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.