nuget.exe sürümlerini bulmak için tools.json
Bugün, makinenizde nuget.exe en son sürümünü betik biçiminde edinmenin birkaç yolu vardır. Örneğin, paketi nuget.org indirip ayıklayabilirsiniz NuGet.CommandLine
. Bunun karmaşıklığı vardır çünkü zaten nuget.exe sahip olmanız gerekir (için nuget.exe install
) veya temel bir unzip aracı kullanarak .nupkg dosyasının sıkıştırmasını açmanız ve içindeki ikiliyi bulmanız gerekir.
Zaten nuget.exe varsa, kullanabilirsiniz nuget.exe update -self
, ancak bunun için de nuget.exe'nin mevcut bir kopyasına sahip olmanız gerekir. Bu yaklaşım sizi en son sürüme de güncelleştirir. Belirli bir sürümün kullanılmasına izin vermez.
Uç tools.json
nokta hem önyükleme sorununu çözmek hem de indirdiğiniz nuget.exe sürümünün denetimini vermek için kullanılabilir. Bu, CI/CD ortamlarında veya özel betiklerde nuget.exe'ın yayımlanan sürümlerini keşfetmek ve indirmek için kullanılabilir.
Uç tools.json
nokta kimliği doğrulanmamış bir HTTP isteği (örneğin Invoke-WebRequest
, PowerShell veya wget
) kullanılarak getirilebilir. JSON seri durumdan çıkarıcı kullanılarak ayrıştırılabilir ve sonraki nuget.exe indirme URL'leri de kimliği doğrulanmamış HTTP istekleri kullanılarak getirilebilir.
Uç nokta şu yöntem kullanılarak GET
getirilebilir:
GET https://dist.nuget.org/tools.json
Uç noktanın JSON şemasına buradan ulaşabilirsiniz:
GET https://dist.nuget.org/tools.schema.json
Yanıt, nuget.exe tüm kullanılabilir sürümlerini içeren bir JSON belgesidir.
Kök JSON nesnesi aşağıdaki özelliğe sahiptir:
Adı | Tür | Zorunlu |
---|---|---|
nuget.exe | nesne dizisi | evet |
Dizideki nuget.exe
her nesne aşağıdaki özelliklere sahiptir:
Adı | Tür | Zorunlu | Notlar |
---|---|---|---|
sürüm | string | evet | SemVer 2.0.0 dizesi |
url | Dize | evet | bu nuget.exe sürümünü indirmek için mutlak URL |
Sahne | string | evet | Sabit listesi dizesi |
Yüklenen | string | evet | Sürümün ne zaman kullanıma sunulduğuna ilişkin yaklaşık ISO 8601 zaman damgası |
Dizideki öğeler azalan SemVer 2.0.0 düzeninde sıralanır. Bu garanti, en yüksek sürüm numarasıyla ilgilenen bir istemcinin yükünü azaltmaya yöneliktir. Ancak bu, listenin kronolojik düzende sıralanmadığı anlamına gelir. Örneğin, daha düşük bir ana sürüme daha yüksek bir ana sürümden sonraki bir tarihte hizmet verirseniz, bu hizmet sunulan sürüm listenin en üstünde görünmez. En son sürümün zaman damgası tarafından yayımlanmasını istiyorsanız, diziyi dizeye uploaded
göre sıralamanız yeterlidir. Bunun işe yaradığı için uploaded
zaman damgası ISO 8601 biçimindedir ve bu biçim kronolojik olarak sözcük temelli sıralama (basit bir dize sıralama) kullanılarak sıralanabilir.
özelliği, stage
aracın bu sürümünün nasıl izlendiğini gösterir.
Aşama | Anlamı |
---|---|
EarlyAccessPreview | İndirme web sayfasında henüz görünmüyor ve iş ortakları tarafından doğrulanmalıdır |
Yayınlandı | İndirme sitesinde mevcuttur ancak geniş çapta kullanım için henüz önerilmez |
ReleasedAndBlessed | İndirme sitesinde kullanılabilir ve kullanım için önerilir |
En son, önerilen sürüme sahip olmak için basit bir yaklaşım, listedeki değeri olan stage
ilk sürümü almaktır ReleasedAndBlessed
. Bu işe yarar çünkü sürümler SemVer 2.0.0 düzeninde sıralanır.
NuGet.CommandLine
nuget.org paketi genellikle yalnızca sürümlerle ReleasedAndBlessed
güncelleştirilir.
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"
}
]
}