web-dev-qa-db-fra.com

Modifier les dossiers de package NuGet utilisés par Visual Studio 2017

Il n’ya plus de dossier de solution packages dans un projet .NET Core basé sur csproj ou project.json.

NuGet CLI récupère la liste des dossiers de cache utilisés:

nuget locals all -list

Réponse:

http-cache: C:\Users\<foo>\AppData\Local\NuGet\v3-cache
global-packages:  C:\Users\<foo>\.nuget\packages\
temp: C:\Users\<foo>\AppData\Local\Temp\NuGetScratch

Comment changer ou remplacer ces emplacements?

28
Ilya Chumakov

Emplacements de cache

Les dossiers de packages locaux à la solution n'existent plus pour .NET Core et Visual Studio 2017.

NuGet est maintenant complètement intégré à MSBuild:

Les dossiers de packages locaux aux solutions ne sont plus utilisés - Les packages sont maintenant résolus dans le cache de l'utilisateur à% userdata% .nuget, plutôt que dans un dossier de packages spécifique à la solution. Cela permet à PackageReference de fonctionner plus rapidement et de consommer moins d'espace disque en utilisant un dossier partagé de packages sur votre poste de travail.

NuGet 4.0+ utilise au moins deux emplacements de paquet globaux:

  • Spécifique à l'utilisateur: %userprofile%\.nuget\packages\
  • Au niveau de la machine: %ProgramFiles(x86)%\Microsoft SDKs\NuGetPackages\"

Vous pouvez répertorier tous les dossiers spécifiques à l'utilisateur à l'aide de la commande de console suivante:

nuget locals all -list

Notez que le dossier de l’ensemble de la machine n’y est pas répertorié. Cependant, il est défini dans les paramètres de Visual Studio:

Options -> NuGet Package Manager -> Package Sources

Fichiers de configuration

NuGet.config Fichiers sont situés ici :

  • Spécifique à l'utilisateur: %APPDATA%\NuGet\
  • Au niveau de la machine: %ProgramFiles(x86)%\NuGet\Config\

Il est possible de modifier et de remplacer les paramètres de NuGet à plusieurs niveaux:

  • projet
  • solution
  • utilisateur
  • machine

Et encore plus! En savoir plus sur l'ordre de priorité hiérarchique NuGet.config Ici: Comment les paramètres sont appliqués .

Par exemple, le paramètre globalPackagesFolder modifie l'emplacement d'un cache de package. Regardez cet exemple NuGet.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <clear />
    <add key="globalPackagesFolder" value="c:\packages" />
  </config>
</configuration>
51
Ilya Chumakov

De la MS Docs :

global-packages

  • Windows:% userprofile% .nuget\packages
  • Mac/Linux: ~/.nuget/packages

Remplacez à l'aide de la variable d'environnement NUGET_PACKAGES , des paramètres de configuration globalPackagesFolder ou repositoryPath (lors de l'utilisation de PackageReference et packages.config, respectivement) ou de la propriété RestorePackagesPath MSBuild (MSBuild seulement). La variable d'environnement a priorité sur le paramètre de configuration.

1
Michael