Compartir a través de


Solución de problemas de paquetes instalados

En ocasiones, es posible que quiera validar desde qué origen se instaló un paquete específico. Estas son algunas de las formas de comprobarlo.

Nota:

Algunos orígenes de paquetes admiten un concepto conocido como orígenes ascendentes. Por ejemplo, los orígenes ascendentes de Azure Artifacts. Los clientes NuGet no saben si un paquete provenía de un origen ascendente. Por lo tanto, cualquier registro del origen del paquete mostrará el origen configurado, no el origen ascendente.

Archivo .nupkg.metadata de la carpeta global-packages

Cuando se extrae un paquete en la carpeta global-packages, se escribe un archivo .nupkg.metadata. A partir de NuGet 5.9.0, se agrega el origen del paquete. Consulte a continuación para asignar versiones de NuGet a versiones de Visual Studio o del SDK de .NET. Por ejemplo:

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

Nota:

Si en la carpeta global-packages se han extraído paquetes antes de que actualice a una versión más reciente de herramientas que tenga NuGet 5.9.0, el archivo .nupkg.metadata tendrá la versión 1 y no contendrá el origen del paquete. Puede borrar la carpeta global-packages para que todos los paquetes contengan el origen del paquete.

Sugerencia

NuGet escribe el archivo .nupkg.metadata solo en la carpeta global-packages. Los proyectos que usan packages.config emplean una carpeta de paquetes de solución, que no crea un archivo .nupkg.metadata.

Mensaje de registro del paquete instalado

A partir de NuGet 5.9.0, el origen del paquete se genera en el mensaje de restauración que informa de que se ha instalado un paquete. Por ejemplo:

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

Sugerencia

Este mensaje se genera en el nivel de detalle normal o informativo. Visual Studio y la CLI de dotnet tienen como valor predeterminado el nivel de detalle mínimo, por lo que este mensaje no estará visible de forma predeterminada. Las herramientas de la CLI msbuild y nuget tienen como valor predeterminado el nivel de detalle normal, por lo que este mensaje estará visible de forma predeterminada.

Mensaje de registro HTTP

Cuando un paquete no está disponible localmente, ya sea en la carpeta global-packages, en una carpeta de reserva o en un origen de archivo local, NuGet lo descarga de cualquier origen de paquete configurado a través de HTTP. Las solicitudes y respuestas HTTP se registran en el nivel de detalle normal y solo debería ver una solicitud y respuesta por versión del paquete. Por ejemplo:

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

Si los archivos se descargaron recientemente, podrían recuperarse de http-cache de 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

El formato de dirección URL puede ser diferente para las distintas implementaciones de servidor HTTP de NuGet y según si implementa el protocolo HTTP NuGet V2 o V3.

Si nuget.config tiene varios orígenes HTTP definidos, verá varias solicitudes al archivo index.json de cada paquete, una para cada origen. Sin embargo, solo habrá una descarga nupkg para cada versión del paquete.

Mensaje de registro de firma de paquete

Si el paquete que se descarga está firmado, NuGet validará la firma y registrará el mensaje siguiente en el nivel de detalle pormenorizado:

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

Este mensaje se mostrará si el paquete se descargó de un origen de paquete HTTP o se copió de un origen de paquete local. No se mostrará si el paquete ya está disponible en la carpeta global-packages o en una carpeta de reserva.

Importante

Debido a la eliminación de la confianza de la entidad de certificación VeriSign, NuGet ha deshabilitado la comprobación de paquetes firmados en determinadas plataformas, en determinadas versiones de NuGet y en el SDK de .NET. Por lo tanto, es posible que los mismos paquetes tengan registros PackageSignatureVerificationLog o que falten esos registros, en función de la plataforma en la que se ejecute la restauración y de la versión de .NET o NuGet que se use.

Asignación de versiones de NuGet

Las siguientes versiones de NuGet tienen cambios importantes relacionados con el registro del origen del paquete:

Versión de NuGet Versión de Visual Studio Versión del SDK de .NET
NuGet 5.9.0 Visual Studio 2019 16.9.0 SDK de .NET 5 5.0.200