다음을 통해 공유


설치된 패키지 문제 해결

특정 패키지가 설치된 원본의 유효성을 검사하려는 경우가 있습니다. 다음은 확인할 수 있는 몇 가지 방법입니다.

비고

일부 패키지 원본은 업스트림 원본이라는 개념을 지원합니다. 예를 들어 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"
}

비고

NuGet 5.9.0 이 있는 최신 버전의 도구로 업그레이드하기 전에 .nupkg.metadata 폴더에 패키지가 추출된 경우 파일은 버전 1이 되며 패키지 원본이 포함되지 않습니다. 전역 패키지 폴더를 지워 모든 패키지에 패키지 원본이 포함되도록 할 수 있습니다.

팁 (조언)

NuGet은 .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 및 CLI는 dotnet 기본적으로 최소 세부 정보 표시로 설정되므로 이 메시지는 기본적으로 표시되지 않습니다. 기본적으로 msbuildnuget CLI 도구의 출력은 일반 수준의 자세함으로 설정되어 있으므로, 이 메시지는 기본적으로 표시됩니다.

HTTP 로그 메시지

패키지가 전역 패키지 폴더, 대체 폴더 또는 로컬 파일 원본에서 사용 가능하지 않은 경우, 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 프로토콜을 구현하는지 여부에 따라 다를 수 있습니다.

정의된 여러 HTTP 원본이 있는 nuget.config 경우 각 패키지의 index.json 파일에 대한 여러 요청(각 원본에 대해 하나씩)이 표시됩니다. 그러나 패키지의 각 버전에 대해 단일 nupkg 다운로드만 있을 것입니다.

패키지 서명 로그 메시지

다운로드 중인 패키지에 서명된 경우 NuGet은 서명의 유효성을 검사하고 자세한 세부 정보 표시로 다음 메시지를 기록합니다.

PackageSignatureVerificationLog: PackageIdentity: Moq.4.16.1 Source: https://api.nuget.org/v3/index.json PackageSignatureValidity: True

이 메시지는 패키지가 HTTP 패키지 원본에서 다운로드되었는지 또는 로컬 패키지 원본에서 복사되었는지 여부를 보고합니다. 패키지를 global-packages 폴더 또는 대체 폴더에서 이미 사용할 수 있는 경우에는 출력되지 않습니다.

중요합니다

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