nuget.exe 버전을 검색하기 위한 tools.json
현재 컴퓨터에 최신 버전의 nuget.exe 스크립트 가능한 방식으로 가져오는 몇 가지 방법이 있습니다. 예를 들어 nuget.org 패키지를 다운로드하고 추출할 NuGet.CommandLine
수 있습니다. 여기에는 이미 nuget.exe(예 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
응답
응답은 사용 가능한 모든 nuget.exe 버전을 포함하는 JSON 문서입니다.
루트 JSON 개체에는 다음 속성이 있습니다.
속성 | Type | Required |
---|---|---|
nuget.exe | 개체의 배열 | 예 |
배열의 nuget.exe
각 개체에는 다음과 같은 속성이 있습니다.
속성 | Type | Required | 주의 |
---|---|---|---|
version | string | 예 | SemVer 2.0.0 문자열 |
url | string | 예 | 이 버전의 nuget.exe 다운로드하기 위한 절대 URL |
stage(단계) | string | 예 | 열거형 문자열 |
업로드 | string | 예 | 버전을 사용할 수 있게 된 대략적인 ISO 8601 타임스탬프 |
배열의 항목은 내림차순 SemVer 2.0.0 순서로 정렬됩니다. 이 보장은 가장 높은 버전 번호에 관심이 있는 클라이언트의 부담을 줄이기 위한 것입니다. 그러나 이는 목록이 시간순으로 정렬되지 않음을 의미합니다. 예를 들어 더 낮은 주 버전이 상위 주 버전보다 늦게 서비스되는 경우 이 서비스 버전은 목록 맨 위에 표시되지 않습니다. 타임스탬프에서 릴리스된 최신 버전을 원하는 경우 문자열별로 배열을 정렬하기 uploaded
만 하면 됩니다. 이는 타임스탬프가 어휘 정렬(즉, 간단한 문자열 정렬)을 사용하여 시간순으로 정렬할 수 있는 ISO 8601 형식이기 때문에 uploaded
작동합니다.
속성은 stage
도구의이 버전을 검사 하는 방법을 나타냅니다.
단계 | 의미 |
---|---|
EarlyAccessPreview | 아직 다운로드 웹 페이지에 표시되지 않으며 파트너가 유효성을 검사해야 합니다. |
릴리스됨 | 다운로드 사이트에서 사용할 수 있지만 광범위한 사용에는 아직 권장되지 않습니다. |
ReleasedAndBlessed | 다운로드 사이트에서 사용할 수 있으며 사용이 권장됩니다. |
권장되는 최신 버전을 사용하는 간단한 방법 중 하나는 값이 stage
있는 목록의 ReleasedAndBlessed
첫 번째 버전을 사용하는 것입니다. 이는 버전이 SemVer 2.0.0 순서로 정렬되기 때문에 작동합니다.
nuget.org 패키지는 NuGet.CommandLine
일반적으로 버전으로 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"
}
]
}