다음을 통해 공유


Azure Artifacts 피드에 연결(NuGet.exe)

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

Azure Artifacts를 사용하면 개발자가 프라이빗 피드 및 퍼블릭 레지스트리와 같은 다양한 원본에서 NuGet 패키지를 다운로드할 수 있습니다. 프라이빗 피드에 패키지를 게시하고 액세스를 제어하거나 공개 피드를 만들어 공개적으로 공유할 수 있습니다. 이 문서에서는 Azure Artifacts 피드에 대한 인증을 안내합니다.

필수 조건

제품 요구 사항
Azure DevOps - 하나의 Azure DevOps 조직.
- Azure DevOps 프로젝트.
- Azure Artifacts의 피드.
- Azure Artifacts 자격 증명 공급자을 다운로드하여 설치합니다.
- 최신 NuGet 버전을 설치합니다.

프로젝트 설정

  1. Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.

  2. 아티팩트를 선택하고, 그런 다음 드롭다운 메뉴에서 피드를 선택합니다.

  3. 피드에 연결을 선택한 다음 왼쪽에서 NuGet.exe을 선택합니다.

  4. 프로젝트에 nuget.config 파일을 추가하고 csproj 또는 sln 파일과 동일한 폴더에 배치한 다음 제공된 코드 조각을 붙여넣습니다. nuget.config 파일은 다음과 유사합니다.

    • 프로젝트별 피드:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
    • 조직에 한정된 피드:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. Azure DevOps 컬렉션에 로그인한 다음 프로젝트로 이동합니다.

  2. 아티팩트를 선택하고, 그런 다음 드롭다운 메뉴에서 피드를 선택합니다.

  3. 피드에 연결을 선택한 다음, 왼쪽 탐색 창에서 NuGet.exe 을 선택합니다.

  4. 프로젝트에nuget.config 파일을 추가하고 csproj 또는 sln 파일과 동일한 폴더에 배치한 다음 Project 설치 섹션에 제공된 코드 조각을 파일에 붙여넣습니다.

비고

Azure Artifacts 자격 증명 공급자에는 NuGet 버전 4.8.0.5385 이상이 필요합니다. 최적의 성능을 위해 Azure Artifacts는 취소 및 시간 제한과 관련된 중요한 버그 수정을 포함하므로 NuGet 버전 5.5.x 이상을 사용하는 것이 좋습니다.

레거시 프로젝트 설정

이전 버전의 NuGet을 사용하는 경우 아래 지침에 따라 피드에 연결합니다.

  1. Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.

  2. 아티팩트을 선택한 후 드롭다운 메뉴에서 피드를 선택합니다.

  3. 피드에 연결을 선택한 다음 왼쪽에서 NuGet.exe을 선택합니다.

  4. 프로젝트 설정 섹션에서 원본 URL을 복사한 다음 /v3/index.json/v2로 교체하세요. 업데이트된 원본 URL은 다음 중 하나와 같아야 합니다.

    • 프로젝트별 피드:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
    • 조직에 한정된 피드:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
  5. 개인용 액세스 토큰을 만들고, 액세스하려는 올바른 조직으로 범위를 지정한 다음, 필요에 따라 패키징(읽기), 패키징(읽기 및 쓰기) 또는 패키징(읽기, 쓰기 및 관리) 중 하나를 선택합니다.

  6. 명령 프롬프트 창에서 다음 명령을 실행하여 피드 원본을 nuget.config 파일에 추가합니다.

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <ANY_STRING_BUT_NOT_NULL> -password <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. 조직이 Microsoft Entra ID에 연결된 경우 먼저 AD 자격 증명으로 인증한 다음 setapikey 명령을 사용하여 개인 액세스 토큰을 추가해야 합니다.

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <AZURE_ACTIVE_DIRECTORY_USERNAME> -password <AZURE_ACTIVE_DIRECTORY_PASSWORD>
    
    nuget setapikey <YOUR_PERSONAL_ACCESS_TOKEN> -source <SOURCE_URL> 
    

서비스 주체를 사용하여 인증 수행하기

서비스 주체를 사용하여 Azure Artifacts 피드로 인증하려면 아래와 같이 ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS 환경 변수를 설정합니다.

이렇게 하면 피드 URL, 서비스 주체의 애플리케이션(클라이언트) ID, 주체 이름 또는 서비스 주체 인증서의 파일 경로가 지정됩니다(이 두 가지 중 하나만 필요).

$env:ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS = @'{
    "endpointCredentials": [
        {
            "endpoint": "<FEED_URL>",
            "clientId": "<SERVICE_PRINCIPAL_APPLICATION_(CLIENT)_ID>",
            "clientCertificateSubjectName": "<SERVICE_PRINCIPAL_CERTIFICATE_NAME>",
            "clientCertificateFilePath": "<SERVICE_PRINCIPAL_CERTIFICATE_PATH>"
        }
    ]
}
'@