Para una aplicación de consola C # en VS2019, emití el siguiente comando desde .NET CLI (desarrollador PowerShell): -
dotnet add package <PackageName> --version <Version>Luego, desde el Explorador de objetos, descubrí que el ensamblado del paquete (.dll) se ha copiado en mi ruta local a partir de C:\Users<userid>.nuget\packages<PackageName><Version>. Pero si veo la definición de mi proyecto (archivo .csproj), solo veo el nombre del paquete y no la ruta: -
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="<PackageName>" Version="<Version>" /> </ItemGroup> </Project>¿Dónde está la configuración en Visual Studio (o .dotnet CLI) que decide en qué ruta local se deben descargar los paquetes NuGet?
Esta es la memoria caché global de NuGet, es configurable (según los documentos citados a continuación), pero la suya es la ubicación predeterminada
La carpeta de paquetes globales es donde NuGet instala cualquier paquete descargado. Cada paquete se expande completamente en una subcarpeta que coincide con el identificador del paquete y el número de versión. Los proyectos que usan el formato PackageReference siempre usan paquetes directamente desde esta carpeta. Al usar packages.config, los paquetes se instalan en la carpeta de paquetes globales y luego se copian en la carpeta de paquetes del proyecto.
Windows: %perfil de usuario%.nuget\paquetes
Mac/Linux: ~/.nuget/paquetes
Invalide el uso de la variable de entorno NUGET_PACKAGES, los valores de configuración globalPackagesFolder o repositoryPath (al usar PackageReference y packages.config, respectivamente) o la propiedad RestorePackagesPath MSBuild (solo MSBuild). La variable de entorno tiene prioridad sobre el valor de configuración.