퍼블릭 피드에서 업스트림 원본 사용
Azure DevOps Services
Azure Artifacts를 사용하면 개발자가 단일 피드에서 종속성을 관리할 수 있습니다. 업스트림 원본을 사용하면 피드 및 공용 레지스트리(예: NuGet.org 및 npmjs.com)의 패키지를 사용할 수 있습니다. 이 문서에서는 다음을 수행하는 방법을 알아봅니다.
- 공용 피드 만들기
- 업스트림 원본 사용
- 새 업스트림 원본 추가
필수 조건
Azure DevOps 조직. 아직 조직이 없는 경우 조직을 만듭니다.
Azure DevOps 프로젝트입니다. 새 프로젝트가 없는 경우 새 프로젝트를 만듭니다.
프로젝트 표시 유형을 공용으로 설정합니다.
공용 피드 만들기
퍼블릭 피드는 퍼블릭 프로젝트의 프로젝트 범위 피드입니다. 퍼블릭 피드는 호스팅 프로젝트의 표시 유형 설정을 상속합니다.
Azure DevOps 조직에 로그인한 다음, 퍼블릭 프로젝트를 선택합니다.
아티팩트 및 피드 만들기를 선택합니다.
피드에 이름을 지정한 다음, 해당 범위에 대해 Project: PublicProject(권장)를 선택합니다.
완료되면 만들기를 선택합니다.
Important
퍼블릭 피드는 프라이빗 아티팩트 피드에 대한 업스트림을 지원하지 않습니다. 공용 Azure Artifacts 피드를 사용하는 경우 공용 레지스트리(NuGet.org, npmjs) 또는 기타 공용 Azure Artifacts 피드로만 업스트림할 수 있습니다.
업스트림 원본 추가
Azure DevOps 조직에 로그인한 다음, 퍼블릭 프로젝트를 선택합니다.
아티팩트, 공용 피드를 선택합니다.
기어 아이콘 을 선택하여 피드 설정에 액세스합니다.
업스트림 원본을 선택한 다음 업스트림 추가를 선택합니다.
업스트림 원본 유형을 선택합니다. 이 예제에서는 NuGet.org 업스트림 원본으로 추가합니다.
원본을 구성한 다음, 완료되면 추가를 선택합니다.
저장을 선택하여 새 업스트림 원본을 저장합니다.
Important
NuGet 및 Dotnet 패키지를 업스트림 원본에서 퍼블릭 피드로 저장하려면 패키지 잠금 파일이 필요합니다.
패키지 복원
프로젝트 디렉터리에서 다음 명령을 실행하여 패키지를 복원합니다.
참고 항목
업스트림에서 새 패키지 버전을 설치하려면 피드 및 업스트림 판독기(협력자) 이상이어야 합니다. 익명 사용자는 피드에 있는 패키지만 설치할 수 있습니다.
Q&A
Q: 패키지를 복원하려고 하지만 401 권한 없는 오류가 계속 발생합니까?
피드의 콘텐츠는 피드에 대한 적절한 권한이 있는 인증되고 권한이 부여된 ID에 의해서만 변경할 수 있습니다. 여기에는 업스트림 원본에서 피드에 패키지를 저장하는 것이 포함됩니다. 인증되지 않은(익명) 사용자는 피드에 이미 저장된 패키지를 다운로드할 수 있지만 업스트림에서 피드로 새 패키지를 저장할 수는 없습니다.
프로젝트의 유지 관리자가 필요한 모든 패키지 버전을 퍼블릭 피드에 저장해야 합니다. 이 작업은 메시지가 표시될 때 피드에 자격 증명을 제공할 수 있는 ID를 사용하여 프로젝트를 복원하고 사용된 ID에 공용 피드에 대한 피드 및 업스트림 판독기(협력자) 이상의 권한이 있는지 확인하여 수행할 수 있습니다.
프로젝트에 대한 패키지를 복원하는 익명 사용자가 자격 증명 요청(401 응답)에 의해 반복적으로 차단되는 경우 다음 방법을 통해 문제를 줄이거나 제거합니다.
프로젝트 구성에서 패키지 버전 범위를 사용하지 않습니다. 명시적 패키지 버전은 패키징 클라이언트가 필요한 정확한 버전만 요청하도록 합니다.
지원되는 경우 패키징 클라이언트가 복원/설치 작업 중에 프로젝트에 필요한 특정 버전만 요청하게 되도록 패키징 에코시스템에 잠금 파일을 활용합니다.
Q: Visual Studio를 사용하여 패키지를 복원하려고 하지만 다른 원본에서 가져온 것을 알아차리고 있나요?
A: Visual Studio가 로컬 NuGet 패키지 관리자가 아닌 nuget.config 파일에서 참조되는 원본을 사용하고 있는지 확인합니다. 자세한 내용은 패키지 원본을 참조하세요.
NuGet CLI를 사용하여 다음 명령을 실행하여 NuGet이 구성 파일의 원본을 사용하도록 강제할 수도 있습니다.
nuget restore -config <PATH_TO_NUGET_CONFIG_FILE>