설치된 패키지 문제 해결
어떤 원본으로부터 특정 패키지가 설치되었는지 확인하려는 경우가 있습니다. 다음은 이를 확인할 수 있는 몇 가지 방법입니다.
참고 항목
일부 패키지 원본은 업스트림 소스라는 개념을 지원합니다. Azure Artifacts 업스트림 소스를 예로 들 수 있습니다. NuGet 클라이언트는 패키지를 업스트림 소스에서 가져왔는지 여부를 알지 못합니다. 따라서 패키지 원본 로깅 시 업스트림 소스가 아닌 구성된 원본이 나열됩니다.
전역 패키지 폴더의 .nupkg.metadata
파일
패키지가 global-packages 폴더에 추출되면 .nupkg.metadata
파일이 기록됩니다. NuGet 5.9.0 이상 버전부터 NuGet은 패키지 원본을 추가합니다. NuGet 버전을 Visual Studio 또는 .NET SDK 버전에 매핑하려면 아래를 참조하세요. 예시:
{
"version": 2,
"contentHash": "bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==",
"source": "https://api.nuget.org/v3/index.json"
}
참고 항목
global-packages 폴더에 NuGet 5.9.0이 포함된 최신 버전의 도구로 업그레이드하기 전 추출한 패키지가 있는 경우, .nupkg.metadata
파일의 버전은 1이며 패키지 원본을 포함하지 않습니다. global-packages 폴더를 지워 모든 패키지에 패키지 원본이 포함되도록 할 수 있습니다.
팁
NuGet은 global-packages 폴더에만 .nupkg.metadata
파일을 씁니다. packages.config
를 사용하는 프로젝트는 .nupkg.metadata
파일을 만들지 않는 솔루션 패키지 폴더를 사용합니다.
설치된 패키지 로그 메시지
NuGet 5.9.0 이상 버전부터 NuGet은 패키지가 설치되었음을 알리는 복원 메시지에서 패키지 원본을 출력합니다. 예시:
Installed Moq 4.16.1 from https://api.nuget.org/v3/index.json with content hash bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==.
팁
이 메시지는 일반/알림 세부 정보 표시에 출력됩니다. Visual Studio 및 dotnet
CLI는 기본적으로 최소한의 세부 정보를 표시하므로 이 메시지는 기본적으로 표시되지 않습니다. msbuild
및 nuget
CLI 도구는 기본적으로 일반적인 세부 정보를 표시하므로 이 메시지는 기본적으로 표시됩니다.
HTTP 로그 메시지
global-packages 폴더, 대체 폴더 또는 로컬 파일 원본 중 하나에서 로컬로 패키지를 사용할 수 없는 경우, NuGet은 HTTP를 통해 구성된 모든 패키지 원본에서 패키지를 다운로드합니다. HTTP 요청 및 응답은 일반적인 세부 정보 표시 수준으로 로그되며 패키지 버전당 하나의 요청 및 응답만 표시됩니다. 예시:
info : GET https://api.nuget.org/v3-flatcontainer/moq/index.json
info : OK https://api.nuget.org/v3-flatcontainer/moq/index.json 56ms
info : GET https://api.nuget.org/v3-flatcontainer/moq/4.16.1/moq.4.16.1.nupkg
info : OK https://api.nuget.org/v3-flatcontainer/moq/4.16.1/moq.4.16.1.nupkg 3ms
최근에 파일을 다운로드한 경우 NuGet의 http-cache에서 검색할 수 있습니다.
CACHE https://api.nuget.org/v3-flatcontainer/moq/index.json
CACHE https://api.nuget.org/v3-flatcontainer/moq/4.16.1/moq.4.16.1.nupkg
URL 형식은 다양한 NuGet HTTP 서버 구현과 형식이 NuGet V2 또는 V3 HTTP 프로토콜을 구현하는지 여부에 따라 다를 수 있습니다.
nuget.config
에 여러 HTTP 소스가 정의되어 있는 경우, 각 패키지의 index.json
파일에 대한 여러 요청이 각 원본에 대해 하나씩 표시됩니다. 그러나 패키지의 각 버전에 대한 nupkg
다운로드는 하나만 표시됩니다.
패키지 서명 로그 메시지
다운로드되는 패키지가 서명된 경우, NuGet은 서명의 유효성을 검사하고 다음 메시지를 자세한 세부 정보 수준으로 표시합니다.
PackageSignatureVerificationLog: PackageIdentity: Moq.4.16.1 Source: https://api.nuget.org/v3/index.json PackageSignatureValidity: True
이 메시지는 패키지가 HTTP 패키지 원본에서 다운로드되었는지 또는 로컬 패키지 원본에서 복사되었는지를 보고합니다. 패키지를 global-packages 폴더 또는 대체 폴더에서 이미 사용할 수 있는 경우 해당 메시지는 출력되지 않습니다.
Important
VeriSign CA의 신뢰 제거로 인해 NuGet은 특정 버전의 NuGet 및 .NET SDK에서 특정 플랫폼에 대한 서명된 패키지 확인을 사용하지 않도록 설정했습니다. 따라서 복원을 실행하는 플랫폼 및 사용 중인 .NET 또는 NuGet 버전에 따라 동일한 패키지에 PackageSignatureVerificationLog
로그가 있거나 해당 로그가 누락될 수 있습니다.
NuGet 버전 맵
다음 버전의 NuGet에는 패키지 원본 로깅과 관련된 중요한 변경 사항이 있습니다.
NuGet 버전 | Visual Studio 버전 | .NET SDK 버전 |
---|---|---|
NuGet 5.9.0 | Visual Studio 2019 16.9.0 | .NET 5 SDK 5.0.200 |