tools.json na potrzeby odnajdywania wersji nuget.exe
Obecnie istnieje kilka sposobów uzyskania najnowszej wersji nuget.exe na maszynie w sposób skryptowy. Możesz na przykład pobrać i wyodrębnić NuGet.CommandLine
pakiet z nuget.org. Ma to pewną złożoność, ponieważ wymaga to, aby masz już nuget.exe (dla nuget.exe install
) lub musisz rozpakować plik nupkg przy użyciu podstawowego narzędzia rozpakowywania i znaleźć plik binarny wewnątrz.
Jeśli masz już nuget.exe, możesz również użyć nuget.exe update -self
polecenia , jednak wymaga to również istniejącej kopii nuget.exe. To podejście aktualizuje cię również do najnowszej wersji. Nie zezwala na korzystanie z określonej wersji.
Punkt tools.json
końcowy jest dostępny, aby rozwiązać problem z uruchamianiem i zapewnić kontrolę nad wersją nuget.exe, którą pobierasz. Może to być używane w środowiskach ciągłej integracji/ciągłego wdrażania lub w skryptach niestandardowych do odnajdywania i pobierania dowolnej wydanej wersji nuget.exe.
Punkt tools.json
końcowy można pobrać przy użyciu nieuwierzytelnionego żądania HTTP (np. Invoke-WebRequest
w programie PowerShell lub wget
). Można go przeanalizować przy użyciu deserializacji JSON, a kolejne nuget.exe adresy URL pobierania można również pobrać przy użyciu nieuwierzytelnionych żądań HTTP.
Punkt końcowy można pobrać przy użyciu GET
metody :
GET https://dist.nuget.org/tools.json
Schemat JSON dla punktu końcowego jest dostępny tutaj:
GET https://dist.nuget.org/tools.schema.json
Odpowiedź to dokument JSON zawierający wszystkie dostępne wersje nuget.exe.
Główny obiekt JSON ma następującą właściwość:
Nazwisko | Type | Wymagania |
---|---|---|
nuget.exe | tablica obiektów | tak |
Każdy obiekt w tablicy nuget.exe
ma następujące właściwości:
Nazwisko | Type | Wymagania | Uwagi |
---|---|---|---|
version | string | tak | Ciąg SemVer 2.0.0 |
Adres URL | string | tak | Bezwzględny adres URL pobierania tej wersji nuget.exe |
etap | string | tak | Ciąg wyliczenia |
Przesłane | string | tak | Przybliżony znacznik czasu ISO 8601, kiedy wersja została udostępniona |
Elementy w tablicy będą sortowane w kolejności malejącej SemVer 2.0.0. Ta gwarancja ma na celu zmniejszenie obciążenia klienta, który jest zainteresowany najwyższym numerem wersji. Oznacza to jednak, że lista nie jest sortowana w kolejności chronologicznej. Jeśli na przykład niższa wersja główna jest obsługiwana w dniu późniejszym niż wyższa wersja główna, ta wersja usługi nie będzie wyświetlana na początku listy. Jeśli chcesz, aby najnowsza wersja została wydana przez znacznik czasu, po prostu posortuj tablicę uploaded
według ciągu. Działa to, ponieważ uploaded
znacznik czasu jest w formacie ISO 8601 , który można sortować chronologicznie przy użyciu sortowania leksykograficznego (tj. prostego sortowania ciągów).
Właściwość stage
wskazuje, jak zweryfikowana jest ta wersja narzędzia.
Etap | Znaczenie |
---|---|
EarlyAccessPreview | Nie jest jeszcze widoczny na stronie internetowej pobierania i powinien zostać zweryfikowany przez partnerów |
Wydano | Dostępne w witrynie pobierania, ale nie jest jeszcze zalecane do szerokiego użycia |
WydanyAndBlessed | Dostępne w witrynie pobierania i jest zalecane do użycia |
Jednym z prostych podejść do posiadania najnowszej, zalecanej wersji jest użycie pierwszej wersji na liście, która ma stage
wartość ReleasedAndBlessed
. Działa to, ponieważ wersje są sortowane w kolejności SemVer 2.0.0.
Pakiet NuGet.CommandLine
w nuget.org jest zwykle aktualizowany tylko przy użyciu ReleasedAndBlessed
wersji.
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"
}
]
}