tools.json pro zjišťování verzí nuget.exe
Dnes existuje několik způsobů, jak získat nejnovější verzi nuget.exe na svém počítači skriptovatelným způsobem. Balíček si můžete například stáhnout a extrahovat NuGet.CommandLine
z nuget.org. To má určitou složitost, protože buď vyžaduje, abyste již měli nuget.exe (pro nuget.exe install
) nebo musíte rozbalit .nupkg pomocí základního rozbalení nástroje a najít binární soubor uvnitř.
Pokud již máte nuget.exe, můžete použít nuget.exe update -self
také , ale to také vyžaduje mít existující kopii nuget.exe. Tento přístup vás také aktualizuje na nejnovější verzi. Nepovoluje použití konkrétní verze.
Koncový tools.json
bod je k dispozici k řešení problému se spuštěním a k řízení verze nuget.exe, kterou stáhnete. Můžete ho použít v prostředí CI/CD nebo ve vlastních skriptech ke zjišťování a stahování všech vydaných verzí nuget.exe.
Koncový tools.json
bod je možné načíst pomocí neověřeného požadavku HTTP (např. Invoke-WebRequest
v PowerShellu nebo wget
). Dá se analyzovat pomocí deserializátoru JSON a následné adresy URL pro stahování nuget.exe je možné načíst také pomocí neověřených požadavků HTTP.
Koncový bod je možné načíst pomocí GET
metody:
GET https://dist.nuget.org/tools.json
Schéma JSON pro koncový bod je k dispozici tady:
GET https://dist.nuget.org/tools.schema.json
Odpověď je dokument JSON obsahující všechny dostupné verze nuget.exe.
Kořenový objekt JSON má následující vlastnost:
Name | Type | Požaduje se |
---|---|---|
nuget.exe | pole objektů | ano |
Každý objekt v nuget.exe
poli má následující vlastnosti:
Name | Type | Požaduje se | Notes |
---|---|---|---|
version | string | ano | Řetězec SemVer 2.0.0 |
url | string | ano | Absolutní adresa URL pro stažení této verze nuget.exe |
Fázi | string | ano | Řetězec výčtu |
Nahrané | string | ano | Přibližné časové razítko ISO 8601, kdy byla k dispozici verze |
Položky v poli budou seřazeny v sestupném pořadí SemVer 2.0.0. Tato záruka je určená ke snížení zátěže klienta, který má zájem o nejvyšší číslo verze. To ale znamená, že seznam není seřazený v chronologickém pořadí. Pokud je například nižší hlavní verze obsluhována později než vyšší hlavní verze, tato obsluhovaná verze se nezobrazí v horní části seznamu. Pokud chcete nejnovější verzi vydané podle časového razítka, jednoduše seřaďte pole podle uploaded
řetězce. To funguje, protože uploaded
časové razítko je ve formátu ISO 8601 , který lze řadit chronologicky pomocí lexikálního řazení (tj. jednoduchého řazení řetězců).
Vlastnost stage
označuje, jak je tato verze nástroje prověřena.
Fáze | Význam |
---|---|
EarlyAccessPreview | Na webové stránce ke stažení ještě není vidět a měli by je ověřit partneři. |
Vydáno | K dispozici na webu pro stahování, ale zatím se nedoporučuje pro široké využití |
VydánoAndBlessed | K dispozici na webu pro stahování a doporučuje se ke spotřebě. |
Jedním z jednoduchých přístupů pro nejnovější doporučenou verzi je vzít první verzi v seznamu, která má stage
hodnotu ReleasedAndBlessed
. To funguje, protože verze jsou seřazené v pořadí SemVer 2.0.0.
Balíček NuGet.CommandLine
na nuget.org se obvykle aktualizuje pouze verzemi ReleasedAndBlessed
.
GET https://dist.nuget.org/tools.json
{
"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"
}
]
}