用於探索nuget.exe版本的tools.json
今天,有幾種方式可以透過可編寫腳本的方式,在您的計算機上取得最新版本的 nuget.exe。 例如,您可以從 nuget.org 下載並擷取 NuGet.CommandLine
套件。這有一些複雜度,因為它需要您已經有nuget.exe (for nuget.exe install
) 或您必須使用基本解壓縮工具解壓縮 .nupkg,並在裡面尋找二進制檔。
如果您已經有nuget.exe,您也可以使用 nuget.exe update -self
,但這也需要有現有的nuget.exe複本。 此方法也會將您更新為最新版本。 它不允許使用特定版本。
端點 tools.json
可用來解決啟動載入問題,並讓您控制您下載nuget.exe的版本。 這可用於 CI/CD 環境或自定義腳本中,以探索和下載任何發行版本的 nuget.exe。
tools.json
您可以使用未經驗證的 HTTP 要求來擷取端點(例如Invoke-WebRequest
在 PowerShell 或 wget
中)。 您可以使用 JSON 還原串行化程式剖析它,後續nuget.exe下載 URL 也可以使用未經驗證的 HTTP 要求來擷取。
您可以使用 方法擷取 GET
端點:
GET https://dist.nuget.org/tools.json
端點的 JSON 架構可在這裡取得:
GET https://dist.nuget.org/tools.schema.json
回應
回應是 JSON 檔,其中包含所有可用的nuget.exe版本。
根 JSON 物件具有下列屬性:
名稱 | 類型 | 必要 |
---|---|---|
nuget.exe | 物件陣列 | 是 |
陣列中的每個 nuget.exe
物件都有下列屬性:
名稱 | 類型 | 必要 | 備註 |
---|---|---|---|
version | string | 是 | SemVer 2.0.0 字串 |
URL | string | 是 | 下載此版本的絕對 URL nuget.exe |
之後 | string | 是 | 列舉字串 |
上傳 | string | 是 | 當版本可供使用時的大約 ISO 8601 時間戳 |
陣列中的專案會以遞減、SemVer 2.0.0 順序排序。 此保證旨在減輕對最高版本號碼感興趣之客戶端的負擔。 不過,這表示清單不會依時間順序排序。 例如,如果較晚於較高主要版本的日期提供服務,則此服務版本不會出現在清單頂端。 如果您想要依 時間戳發行的最新版本,只要依 uploaded
字串排序陣列即可。 這可運作,因為 uploaded
時間戳採用 ISO 8601 格式,可使用語匯排序以時間順序排序(亦即簡單的字串排序)。
屬性 stage
會指出這個工具版本的審查方式。
階段 | 意義 |
---|---|
EarlyAccessPreview | 尚未顯示在 下載網頁上 ,且應由合作夥伴驗證 |
已發行 | 可在下載網站上使用,但尚未建議用於廣泛使用量 |
ReleasedAndBlessed | 可在下載網站上取得,建議使用 |
具有最新建議版本的其中一個簡單方法是採用清單中具有 stage
值 ReleasedAndBlessed
的第一個版本。 這可運作,因為版本是以 SemVer 2.0.0 順序排序。
NuGet.CommandLine
nuget.org 上的套件通常只會使用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"
}
]
}