Compartilhar via


Solução de problemas de pacotes instalados

Às vezes, talvez você queira validar de qual origem um pacote específico foi instalado. Aqui estão algumas maneiras de verificar.

Observação

Algumas fontes de pacote dão suporte a um conceito conhecido como fontes upstream. Por exemplo, fontes upstream do Azure Artifacts. Os clientes NuGet não sabem se um pacote veio de uma fonte upstream. Portanto, qualquer registro da origem do pacote listará a origem configurada, não a origem upstream.

.nupkg.metadata arquivo na pasta de pacotes globais

Quando um pacote é extraído na pasta de pacotes globais , um arquivo .nupkg.metadata é gravado. A partir do NuGet 5.9.0, o NuGet adicionará a origem do pacote. Veja abaixo para mapear versões do NuGet para versões do SDK do Visual Studio ou do .NET. Por exemplo:

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

Observação

Se a pasta de pacotes globais tiver pacotes extraídos antes de você atualizar para uma versão mais recente das ferramentas que tem o NuGet 5.9.0, o .nupkg.metadata arquivo será a versão 1 e não conterá a origem do pacote. Você pode limpar sua pasta de pacotes globais para garantir que todos os pacotes contenham a origem do pacote.

Dica

O NuGet grava o .nupkg.metadata arquivo somente na pasta de pacotes globais . Os projetos que usam packages.config usam uma pasta de pacotes de soluções, que não cria um arquivo .nupkg.metadata.

Mensagem de log do pacote instalado

A partir do NuGet 5.9.0, o NuGet gera a origem do pacote na mensagem de restauração informando que um pacote foi instalado. Por exemplo:

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

Dica

Essa mensagem é exibida com verbosidade normal/informativa. O Visual Studio e a dotnet CLI são padrão para verbosidade mínima, portanto, essa mensagem não ficará visível por padrão. As ferramentas msbuild e nuget da CLI são configuradas por padrão para verbosidade normal, portanto, essa mensagem ficará visível por padrão.

Mensagem de log HTTP

Quando um pacote não estiver disponível localmente, seja na pasta de pacotes globais , em uma pasta de fallback ou em uma fonte de arquivo local, o NuGet o baixará de qualquer fonte de pacote configurada por HTTP. Solicitações e respostas HTTP são registradas no nível normal de verbosidade e você deve ver apenas uma única solicitação e resposta por versão do pacote. Por exemplo:

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

Se os arquivos foram baixados recentemente, eles podem ser recuperados do cache http do 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

O formato de URL pode variar para diferentes implementações de servidor HTTP do NuGet, dependendo se está implementando o protocolo HTTP do NuGet V2 ou V3.

Se o seu nuget.config tiver várias fontes HTTP definidas, você verá múltiplas solicitações para o arquivo index.json de cada pacote, uma para cada fonte. Mas haverá apenas um único nupkg download para cada versão do pacote.

Mensagem de log de assinatura do pacote

Se o pacote que está sendo baixado for assinado, o NuGet validará a assinatura e registrará a seguinte mensagem em verbosidade detalhada:

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

Essa mensagem será relatada se o pacote foi baixado de uma fonte de pacote HTTP ou copiado de uma fonte de pacote local. Ela não será gerada se o pacote já estiver disponível na pasta de pacotes globais ou em uma pasta de fallback.

Importante

Devido à remoção da confiança na VeriSign CA, o NuGet desabilitou a verificação de pacote assinado em determinadas plataformas e em determinadas versões do NuGet e do SDK do .NET. Portanto, os mesmos pacotes podem ter PackageSignatureVerificationLog logs ou esses logs podem estar ausentes, dependendo da plataforma na qual você está executando a restauração e da versão do .NET ou do NuGet que está em uso.

Mapa de versão do NuGet

As seguintes versões do NuGet têm alterações importantes em relação ao log de origem do pacote:

Versão do NuGet Versão do Visual Studio Versão do SDK do .NET
NuGet 5.9.0 Visual Studio 2019 16.9.0 SDK .NET 5 5.0.200