tools.json untuk menemukan versi nuget.exe
Saat ini, ada beberapa cara untuk mendapatkan versi terbaru nuget.exe di komputer Anda dengan cara yang dapat ditulis. Misalnya, Anda dapat mengunduh dan mengekstrak NuGet.CommandLine
paket dari nuget.org. Ini memiliki beberapa kompleksitas karena mengharuskan Anda sudah memiliki nuget.exe (untuk nuget.exe install
) atau Anda harus membuka zip .nupkg menggunakan alat unzip dasar dan menemukan biner di dalamnya.
Jika Anda sudah memiliki nuget.exe, Anda juga dapat menggunakan nuget.exe update -self
, namun ini juga mengharuskan memiliki salinan nuget.exe yang ada. Pendekatan ini juga memperbarui Anda ke versi terbaru. Ini tidak mengizinkan penggunaan versi tertentu.
Titik tools.json
akhir tersedia untuk memecahkan masalah bootstrapping dan untuk memberikan kontrol versi nuget.exe yang Anda unduh. Ini dapat digunakan di lingkungan CI/CD atau dalam skrip kustom untuk menemukan dan mengunduh versi nuget.exe yang dirilis.
Titik tools.json
akhir dapat diambil menggunakan permintaan HTTP yang tidak diautentikasi (misalnya Invoke-WebRequest
di PowerShell atau wget
). Ini dapat diurai menggunakan deserializer JSON dan URL unduhan nuget.exe berikutnya juga dapat diambil menggunakan permintaan HTTP yang tidak diautentikasi.
Titik akhir dapat diambil menggunakan GET
metode :
GET https://dist.nuget.org/tools.json
Skema JSON untuk titik akhir tersedia di sini:
GET https://dist.nuget.org/tools.schema.json
Respons
Responsnya adalah dokumen JSON yang berisi semua versi nuget.exe yang tersedia.
Objek JSON akar memiliki properti berikut:
Nama | Tipe | Diperlukan |
---|---|---|
nuget.exe | array objek | yes |
Setiap objek dalam nuget.exe
array memiliki properti berikut:
Nama | Tipe | Diperlukan | Catatan |
---|---|---|---|
versi | string | yes | String SemVer 2.0.0 |
url | string | yes | URL absolut untuk mengunduh versi nuget.exe ini |
Tahap 1 | string | yes | String enum |
Upload | string | yes | Perkiraan tanda waktu ISO 8601 saat versi tersedia |
Item dalam array akan diurutkan dalam urutan turun, SemVer 2.0.0. Jaminan ini dimaksudkan untuk mengurangi beban klien yang tertarik dengan nomor versi tertinggi. Namun ini berarti bahwa daftar tidak diurutkan dalam urutan kronologis. Misalnya, jika versi utama yang lebih rendah dilayankan pada tanggal yang lebih baru dari versi utama yang lebih tinggi, versi berlayanan ini tidak akan muncul di bagian atas daftar. Jika Anda ingin versi terbaru dirilis oleh tanda waktu, cukup urutkan array menurut uploaded
string. Ini berfungsi karena uploaded
tanda waktu dalam format ISO 8601 yang dapat diurutkan secara kronologis dengan menggunakan pengurutan leksikografis (yaitu pengurutan string sederhana).
Properti stage
menunjukkan seberapa pemeriksaan versi alat ini.
Tahap | Makna |
---|---|
EarlyAccessPreview | Belum terlihat di halaman web unduhan dan harus divalidasi oleh mitra |
Dirilis | Tersedia di situs unduhan tetapi belum disarankan untuk konsumsi yang tersebar luas |
ReleasedAndBlessed | Tersedia di situs unduhan dan disarankan untuk dikonsumsi |
Salah satu pendekatan sederhana untuk memiliki versi terbaru yang direkomendasikan adalah mengambil versi pertama dalam daftar yang memiliki stage
nilai ReleasedAndBlessed
. Ini berfungsi karena versi diurutkan dalam urutan SemVer 2.0.0.
Paket NuGet.CommandLine
pada nuget.org biasanya hanya diperbarui dengan ReleasedAndBlessed
versi.
Permintaan sampel
GET https://dist.nuget.org/tools.json
Respon sampel
{
"nuget.exe": [
{
"version": "4.8.0-preview3",
"url": "https://dist.nuget.org/win-x86-commandline/v4.8.0-preview3/nuget.exe",
"stage": "EarlyAccessPreview",
"uploaded": "2018-07-06T23:00:00.0000000Z"
},
{
"version": "4.7.1",
"url": "https://dist.nuget.org/win-x86-commandline/v4.7.1/nuget.exe",
"stage": "ReleasedAndBlessed",
"uploaded": "2018-08-10T23:00:00.0000000Z"
},
{
"version": "4.6.1",
"url": "https://dist.nuget.org/win-x86-commandline/v4.6.1/nuget.exe",
"stage": "Released",
"uploaded": "2018-03-22T23:00:00.0000000Z"
},
{
"version": "3.5.0",
"url": "https://dist.nuget.org/win-x86-commandline/v3.5.0/nuget.exe",
"stage": "ReleasedAndBlessed",
"uploaded": "2016-12-19T15:30:00.0000000-08:00"
},
{
"version": "2.8.6",
"url": "https://dist.nuget.org/win-x86-commandline/v2.8.6/nuget.exe",
"stage": "ReleasedAndBlessed",
"uploaded": "2015-09-01T12:30:00.0000000-07:00"
}
]
}