다음을 통해 공유


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"
        }
    ]
}