dotnet cli nuget 저장소 지정

2023. 6. 16. 21:02Language/C#

개요

요즘 Visual Studio보다 Visual Studio Code를 더 많이 사용 중입니다.

오늘 nuget을 다운받으려고 하는데, 패키지를 자꾸 찾을 수 없어 해결 방법에 대해 글을 쓰려합니다.

문제점

BenchmarkDotNet이라는 Nuget 패키지를 설치하고 싶었습니다.

그래서 dotnet add package BenchmarkDotNet 명령을 입력 했는데 아래와 같이 에러가 발생하였습니다.

> dotnet add package BenchmarkDotNet
  복원할 프로젝트를 확인하는 중...
info : X.509 certificate chain validation will use the default trust store selected by .NET.
info : X.509 certificate chain validation will use the default trust store selected by .NET.        
info : 'D:\Workspace\Project\BlogPosts\CSharp\AAA.csproj' 프로젝트에 'BenchmarkDotNet' 패키지에 대한 PackageReference를 추가하는 중입니다.
info :   GET https://api.nuget.org/v3/registration5-gz-semver2/benchmarkdotnet/index.json
info :   OK https://api.nuget.org/v3/registration5-gz-semver2/benchmarkdotnet/index.json 875밀리초
error: https://nuget.telerik.com/v3/index.json 소스에 대한 서비스 인덱스를 로드할 수 없습니다.
error:   Response status code does not indicate success: 401 (Unauthorized).

Usage: NuGet.CommandLine.XPlat.dll package add [options]
Options:
  -h|--help               Show help information
  --force-english-output  고정 영어 기반 문화권을 사용하여 애플리케이션을 강제로 실행합니다.        
  --package               추가할 패키지의 ID입니다.
  --version               추가할 패키지의 버전입니다.
  -d|--dg-file            미리 보기 복원 및 호환성 검사에 사용할 종속성 그래프 파일의 경로입니다.   
  -p|--project            프로젝트 파일의 경로입니다.
  -f|--framework          패키지 참조를 추가할 프레임워크입니다.
  -n|--no-restore         미리 보기 복원 및 호환성 검사를 수행하지 않습니다. 추가된 패키지 참조는 비조건부입니다.
  -s|--source             복원 중 사용할 NuGet 패키지 원본을 지정합니다.
  --package-directory     패키지를 복원할 디렉터리입니다.
  --interactive           명령이 인증 같은 작업에 대해 수동 작업을 차단하고 요구하도록 허용합니다.  
  --prerelease            시험판 패키지를 설치할 수 있습니다.

분명히 있는 패키지 있는데 왜 안되지 하고 찾아보다 보니 제가 설정해 놓은 Nuget 저장소가 여러 개 였습니다.

Nuget 저장소 조회

dotnet nuget list source 명령을 통해 조회 할 수 있습니다.

> dotnet nuget list source
등록된 소스:
  1.  nuget.org [사용]
      https://api.nuget.org/v3/index.json
  2.  TEST [사용]
      https://package.TEST.co.kr/nuget
  3.  Microsoft Visual Studio Offline Packages [사용]
      C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
  4.  MyTelerikFeed [사용]
      https://nuget.telerik.com/v3/index.json

해결책

해결책으로는 Nuget 패키지를 설치 할 때 저장소를 지정하면 됩니다.

> dotnet add package BenchmarkDotNet --source "https://api.nuget.org/v3/index.json"

'Language > C#' 카테고리의 다른 글

MemoryCache  (0) 2023.06.19
Task vs. ValueTask  (0) 2023.06.17
.NET AOP DynamicProxy  (0) 2023.06.05
StringBuilder vs String Join  (0) 2023.06.04
상속에서 Dispose 패턴  (0) 2023.05.31