今天,有幾種方法可以以可編寫腳本的方式在您的機器上獲取最新版本的 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版本。
未經驗證的 HTTP 要求(例如在 Invoke-WebRequest PowerShell 或 wget 中)可用來擷取 tools.json 端點。 可以使用 JSON 還原序列化器來剖析它,也可以使用未經驗證的 HTTP 請求取得後續 nuget.exe 下載 URL。
可以使用以下 GET 方法提取端點:
GET https://dist.nuget.org/tools.json
端點的 JSON結構描述 可在此處取得:
GET https://dist.nuget.org/tools.schema.json
回應
回應是包含所有可用版本的 nuget.exe的 JSON 檔案。
根 JSON 物件具有下列屬性:
| 名稱 | 類型 | 為必填項目 |
|---|---|---|
| nuget.exe | 物件的陣列 | yes |
陣列中的 nuget.exe 每個物件都有下列屬性:
| 名稱 | 類型 | 為必填項目 | 註釋 |
|---|---|---|---|
| 版本 | 字串 | yes | SemVer 2.0.0 字串 |
| url | 字串 | yes | 下載此版本 nuget.exe 的絕對 URL |
| 暫存 | 字串 | yes | 列舉字串 |
| 已上傳 | 字串 | yes | 版本提供時的近似 ISO 8601 時間戳記 |
陣列中的項目將以遞減的 SemVer 2.0.0 順序排序。 此保證旨在減輕對最高版本號感興趣的客戶端的負擔。 然而,這確實意味著該列表不是按時間順序排序的。 例如,如果服務日期晚於較高主要版本,則此服務版本將不會顯示在清單頂端。 如果您想要按 時間戳記發布的最新版本,只需按字串對 uploaded 陣列進行排序即可。 這有效,因為 uploaded 時間戳記採用 ISO 8601 格式,可以使用字典排序(即簡單的字串排序)按時間順序排序。
屬性指出 stage 此版本的工具經過審查的程度。
| 階段 | Meaning |
|---|---|
| 搶先預覽 | 尚未 在下載網頁 上顯示,應由合作夥伴驗證 |
| 已發行 | 可在下載網站上找到,但尚不建議廣泛使用 |
| 釋放和祝福 | 可在下載網站上取得,建議下載或使用 |
取得最新的建議版本的一個簡單方法是選擇清單中第一個具有 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"
}
]
}