Unduh paket versi lama dengan NuGet

907

Apakah ada cara untuk mengunduh versi paket sebelumnya dengan NuGet , bukan yang terbaru?

irama
sumber

Jawaban:

1117

Memunculkan Package Manager Console di Visual Studio - ada di Tools / NuGet Package Manager / Package Manager Console. Kemudian jalankan perintah Instal-Paket:

Install-Package Common.Logging -Version 1.2.0

Lihat referensi perintah untuk detailnya.

Sunting: Untuk membuat daftar versi suatu paket Anda dapat menggunakan perintah Get-Package dengan argumen jarak jauh dan filter:

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

Dengan menekan tab setelah opsi versi dalam Install-Packageperintah, Anda mendapatkan daftar versi terbaru yang tersedia.

PHeiberg
sumber
54
Untuk kepentingan mereka yang telah menggunakan Nuget untuk sementara waktu tetapi tidak pernah melakukan apa pun dengan itu dari baris perintah: Untuk menjalankan perintah PowerShell yang disebutkan PHeiberg, Anda akan ingin membuka Package Manager Console di Visual Studio - ada di Tools | Manajer Paket Perpustakaan | Manajer Paket Konsol .
Jonathan Moffatt
20
Perintah ini juga harus tersedia melalui UI. Sekarang jika penerbit memiliki versi beta, Anda hanya bisa mendapatkan versi terbaru itu, yang terkadang tidak stabil.
Bart Verkoeijen
2
@bgever - Sebagian besar penerbit membuat Prereleases untuk paket beta yang tidak dianggap sebagai "Terbaru" di GUI. Selama penerbit menggunakan versi dengan benar, versi terbaru harus selalu yang stabil. Namun itu tidak berarti ia tidak akan memiliki bug ...
Jesse Webb
3
Ketergantungan info dan memeriksa apa properti lain yang tersedia: Dapatkan-Paket -Daftar Tersedia [-Sumber X] -Filter Common.Logging -AllVersions | pilih versi, dependensi (atau ' | dapatkan-anggota ' untuk melihat semua properti)
Curtis Yallop
2
Get-Package -ListAvailabletidak tidak daftar semua versi yang tersedia untuk saya.
Roman Starkov
35

Pilihan lain adalah mengubah nomor versi dalam packages.configfile. Ini akan menyebabkan NuGet mengunduh dll untuk versi itu saat berikutnya Anda membangun.

Morten Christiansen
sumber
1
Bagus ... tidak memikirkan itu. Saya kira Pemulihan Paket NuGet harus diaktifkan untuk solusinya.
Leniel Maccaferri
12
Ini tidak cukup untuk juga mengubah referensi perakitan secara otomatis. Apa yang berhasil (jika Anda memiliki dua rakitan dalam solusi Anda) adalah ini: 1. pastikan satu rakitan merujuk paket, 2. mengedit versi yang benar dalam packages.config, 3. mengelola paket NuGet pada solusi, 3a. tambahkan paket ke proyek lain, hapus dari proyek asli, dan konfirmasikan ini, 3b. membalikkan 3a dan konfirmasi. Langkah 3a akan menambahkan referensi perakitan yang benar ke proyek lain dan menghapusnya dari aslinya. Langkah 3b akan menambahkan referensi perakitan yang benar ke proyek asli.
Jeroen Wiert Pluimers
25

Di NuGet 3.x (Visual Studio 2015) Anda cukup memilih versi dari UI

NuGet 3 manajer paket UI

Yishai Galatzer
sumber
Bagus ketika berfungsi tetapi saya telah melihat kasus di mana tidak semua versi lama terdaftar di sana.
UuDdLrLrSs
5

Di NuGet 3.0 Get-Packageperintah sudah usang dan diganti dengan Find-Packageperintah.

Find-Package Common.Logging -AllVersions

Lihat dokumen rujukan perintah NuGet untuk detailnya.

Ini adalah pesan yang ditampilkan jika Anda mencoba menggunakan Get-Package di 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'

Atau seperti yang dikatakan @Yishai, Anda dapat menggunakan dropdown nomor versi di layar NuGet di Visual Studio.

Walt Ritscher
sumber
3

Karena pertanyaan awal tidak menyatakan frontend NuGet mana yang harus digunakan, saya ingin menyebutkan bahwa NuGet 3.5 menambahkan dukungan untuk memperbarui ke versi tertentu melalui klien baris perintah (yang juga berfungsi untuk penurunan versi):

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

Dengan menggunakan UI Package Manager Nuget seperti yang disebutkan di atas, membantu untuk menghapus instalasi paket nuget terlebih dahulu. Saya selalu mengalami masalah saat kembali ke versi paket nuget jika saya tidak mencopot dulu. Beberapa referensi tidak dibersihkan dengan benar. Jadi saya sarankan alur kerja berikut ketika menginstal paket nuget lama melalui Nuget Package Manager:

  1. Memilih server / sumber nuget Anda
  2. Temukan dan pilih paket nuget yang Anda inginkan untuk menginstal versi yang lebih lama
  3. Copot versi saat ini
  4. Klik pada drop-down instalasi> Pilih versi yang lebih lama> Klik Instal

masukkan deskripsi gambar di sini

Semoga berhasil :)

Anna Maule
sumber