다음을 통해 공유


Azure Artifacts 피드에 연결(dotnet)

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

Azure Artifacts를 사용하면 개발자가 피드에 패키지를 원활하게 게시하고 피드의 표시 유형 설정에 따라 비공개 또는 공개적으로 공유할 수 있습니다. 이 가이드에서는 프로젝트를 설정하고 Azure Artifacts 피드를 사용하여 인증하는 방법을 안내합니다.

필수 구성 요소

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

피드에 연결

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

  2. 피드에 연결을 선택하고, NuGet 섹션에서 dotnet을 선택합니다.

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

    • 범위에 따른 프로젝트 피드

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

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

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

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

    Azure DevOps Server 2020 및 2022에서 피드에 연결하는 방법을 표시하는 스크린샷입니다.

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

서비스 주체를 사용하여 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>"
        }
    ]
}
'@