현재 컴퓨터에 최신 버전의 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 역직렬 변환기를 사용하여 구문 분석할 수 있으며, 인증되지 않은 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 각 개체에는 다음과 같은 속성이 있습니다.
| 이름 | 유형 | 필수 | 비고 |
|---|---|---|---|
| version | 문자열 | yes | SemVer 2.0.0 문자열 |
| url | 문자열 | yes | 이 버전의 nuget.exe 다운로드하기 위한 절대 URL |
| stage | 문자열 | yes | 열거형 문자열 |
| 업로드 | 문자열 | yes | 버전을 사용할 수 있게 된 대략적인 ISO 8601 타임스탬프 |
배열의 항목은 내림차순 SemVer 2.0.0 순서로 정렬됩니다. 이 보장은 가장 높은 버전 번호에 관심이 있는 클라이언트의 부담을 줄이기 위한 것입니다. 그러나 이는 목록이 시간순으로 정렬되지 않음을 의미합니다. 예를 들어 더 낮은 주 버전이 상위 주 버전보다 늦게 서비스되는 경우 이 서비스 버전은 목록 맨 위에 표시되지 않습니다.
타임스탬프에서 릴리스된 최신 버전을 원하는 경우 문자열별로 배열을 정렬하기 uploaded 만 하면 됩니다. 이는 타임스탬프가 어휘 정렬(즉, 간단한 문자열 정렬)을 사용하여 시간순으로 정렬할 수 있는 uploaded 형식이기 때문에 작동합니다.
속성은 stage 도구의이 버전을 검사 하는 방법을 나타냅니다.
| 단계 | Meaning |
|---|---|
| 사전 접근 미리보기 | 아직 다운로드 웹 페이지에 표시되지 않으며 파트너가 유효성을 검사해야 합니다. |
| 릴리스됨 | 다운로드 사이트에서 사용할 수 있지만 광범위한 사용에는 아직 권장되지 않습니다. |
| 릴리즈앤블레스드 | 다운로드 사이트에서 사용할 수 있으며 사용이 권장됩니다. |
최신 권장 버전을 얻는 간단한 방법 중 하나는 목록에서 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"
}
]
}