Udostępnij za pośrednictwem


Rozwiązywanie problemów z zainstalowanymi pakietami

Czasami warto sprawdzić, z którego źródła zainstalowano określony pakiet. Poniżej przedstawiono kilka sposobów sprawdzania.

Uwaga

Niektóre źródła pakietów obsługują koncepcję znaną jako nadrzędne źródła. Na przykład źródła nadrzędne usługi Azure Artifacts. Klienci NuGet nie wiedzą, czy pakiet pochodzi ze źródła nadrzędnego. W związku z tym każde rejestrowanie źródła pakietu spowoduje wyświetlenie listy skonfigurowanego źródła, a nie nadrzędnego źródła.

.nupkg.metadata plik w folderze pakietów globalnych

Gdy pakiet zostanie wyodrębniony do folderu global-packages , zostanie zapisany plik .nupkg.metadata . Począwszy od pakietu NuGet 5.9.0, pakiet NuGet doda źródło pakietu. Zobacz poniżej, aby mapować wersje pakietów NuGet na wersje programu Visual Studio lub zestawu .NET SDK. Na przykład:

{
  "version": 2,
  "contentHash": "bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==",
  "source": "https://api.nuget.org/v3/index.json"
}

Uwaga

Jeśli folder global-packages zawiera pakiety wyodrębnione przed uaktualnieniem do nowszej wersji narzędzi z pakietem NuGet 5.9.0, .nupkg.metadata plik będzie w wersji 1 i nie będzie zawierać źródła pakietu. Możesz wyczyścić folder global-packages, aby upewnić się, że wszystkie pakiety będą zawierać źródło pakietu.

Napiwek

NuGet zapisuje .nupkg.metadata plik tylko w folderze global-packages . Projekty korzystające z packages.config folderu pakietów rozwiązań, który nie tworzy .nupkg.metadata pliku.

Komunikat dziennika zainstalowanego pakietu

Począwszy od pakietu NuGet 5.9.0, pakiet NuGet generuje źródło pakietu w komunikacie przywracania informującym o zainstalowaniu pakietu. Na przykład:

Installed Moq 4.16.1 from https://api.nuget.org/v3/index.json with content hash bw3R9q8cVNhWXNpnvWb0OGP4HadS4zvClq+T1zf7AF+tLY1haZ2AvbHidQekf4PDv1T40c6brZeT/V0IBq7cEQ==.

Napiwek

Ten komunikat jest zwracany w normalny/informacyjny czasownik. Program Visual Studio i dotnet interfejs wiersza polecenia domyślnie mają minimalną szczegółowość, więc ten komunikat nie będzie domyślnie widoczny. Narzędzia msbuild interfejsu wiersza polecenia i nuget domyślnie są domyślnie widoczne dla zwykłych zleceń, więc ten komunikat będzie domyślnie widoczny.

Komunikat dziennika HTTP

Jeśli pakiet nie jest dostępny lokalnie, albo w folderze global-packages , folder rezerwowym lub lokalnym źródle plików, NuGet pobierze go z dowolnego skonfigurowanego źródła pakietu za pośrednictwem protokołu HTTP. Żądania HTTP i odpowiedzi są rejestrowane na normalnym poziomie szczegółowości i powinny być widoczne tylko jedno żądanie i odpowiedź na wersję pakietu. Na przykład:

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

Jeśli pliki zostały ostatnio pobrane, mogą być pobierane z pamięci podręcznej http-cache nuGet

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

Format adresu URL może być inny w przypadku różnych implementacji serwera HTTP NuGet i niezależnie od tego, czy implementuje protokół HTTP NuGet V2, czy V3.

nuget.config Jeśli masz zdefiniowane wiele źródeł HTTP, zobaczysz wiele żądań do pliku każdego pakietuindex.json, po jednym dla każdego źródła. Jednak dla każdej wersji pakietu będzie dostępny tylko jeden nupkg plik do pobrania.

Komunikat dziennika podpisu pakietu

Jeśli pobrany pakiet jest podpisany, narzędzie NuGet zweryfikuje podpis i zarejestruje następujący komunikat pod szczegółowym opisem:

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

Ten komunikat zostanie zgłoszony, czy pakiet został pobrany ze źródła pakietu HTTP, czy skopiowany ze źródła pakietu lokalnego. Nie będzie to dane wyjściowe, jeśli pakiet jest już dostępny w folderze global-packages lub folderze rezerwowym.

Ważne

Ze względu na usunięcie zaufania veriSign CA NuGet wyłączył weryfikację pakietu podpisanego na niektórych platformach, w niektórych wersjach nuGet i zestawu .NET SDK. W związku z tym te same pakiety mogą zawierać PackageSignatureVerificationLog dzienniki lub te dzienniki mogą brakować, w zależności od platformy, na której jest uruchomione przywracanie, i której wersji platformy .NET lub Narzędzia NuGet używasz.

Mapa wersji narzędzia NuGet

Następujące wersje pakietu NuGet mają ważne zmiany dotyczące rejestrowania źródła pakietów:

Wersja narzędzia NuGet Wersja programu Visual Studio Wersja zestawu .NET SDK
NuGet 5.9.0 Visual Studio 2019 16.9.0 Zestaw .NET 5 SDK 5.0.200