Bagikan melalui


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"
        }
    ]
}