針對已安裝的套件進行疑難排解
有時候,您可能想要驗證已安裝特定套件的來源。 以下是您可以檢查的一些方式。
注意
某些套件來源支援稱為上游來源的概念。 例如, 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 只會將 .nupkg.metadata
檔案 寫入 global-packages 資料夾。 使用 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
不同 NuGet HTTP 伺服器實作的 URL 格式可能不同,以及其實作 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 資料夾或後援資料夾中提供,則不會輸出。
重要
由於 移除對 VeriSign CA NuGet 的信任,在特定版本的 NuGet 和 .NET SDK 中,某些平臺上已停用已簽署的套件驗證。 因此,相同的套件可能會有 PackageSignatureVerificationLog
記錄,或這些記錄可能遺失,視您執行還原所在的平臺,以及您使用的 .NET 或 NuGet 版本而定。
NuGet 版本對應
下列 NuGet 版本對於套件來源記錄有重要變更:
NuGet 版本 | Visual Studio 版本 | .NET SDK 版本 |
---|---|---|
NuGet 5.9.0 | Visual Studio 2019 16.9.0 | .NET 5 SDK 5.0.200 |