Partager via


Que se passe-t-il lorsqu’un package NuGet est installé ?

En résumé, les différents outils NuGet créent généralement une référence à un package dans le fichier du projet ou packages.config, puis effectuent une restauration de package, ce qui installe effectivement le package. L’exception est nuget install, qui développe uniquement le package dans un packages dossier et ne modifie pas d’autres fichiers.

Le processus général est le suivant :

  1. (Tous les outils sauf nuget.exe) Enregistrez l’identificateur et la version du package dans le fichier projet ou packages.config.

    Si l’outil d’installation est Visual Studio ou l’interface CLI dotnet, l’outil tente d’abord d’installer le package. S’il est incompatible, le package n’est pas ajouté au fichier projet ou packages.config.

  2. Acquérir le package :

    • Vérifiez si le package (par numéro exact d’identité et de version) est déjà installé dans le dossier global-packages , comme décrit dans La gestion des packages globaux et des dossiers de cache.

    • Si le package ne se trouve pas dans le dossier global-packages , essayez de le récupérer à partir des sources répertoriées dans les fichiers de configuration. Les configurations de mappage de source de package sont appliquées à ce stade. Pour les sources en ligne, essayez d’abord de récupérer le package à partir du cache HTTP, à moins que -NoHttpCache ne soit spécifié avec nuget.exe ou --no-http-cache avec dotnet restore. (Visual Studio et dotnet add package toujours utiliser le cache.) Si un package est utilisé à partir du cache, « CACHE » apparaît dans la sortie. Le cache a une durée d’expiration de 30 minutes.

    • Si le package a été spécifié à l’aide d’une version flottante ou sans version minimale, NuGet contacte toutes les sources pour déterminer la meilleure correspondance. Exemple : 1.*, (, 2.0.0].

    • Si le package n’est pas dans le cache HTTP, essayez de le télécharger à partir des sources répertoriées dans la configuration. Si un package est téléchargé, « GET » et « OK » apparaissent dans la sortie. NuGet enregistre le trafic HTTP avec une verbosité normale.

    • Si le package ne peut pas être acquis avec succès à partir de sources, l’installation échoue à ce stade avec une erreur telle que NU1103. Notez que les erreurs des commandes nuget.exe affichent uniquement la dernière source vérifiée, mais impliquent que le paquet n'est pas disponible à partir de n'importe quelle source.

    Lors de l’acquisition du package, l’ordre des sources dans la configuration NuGet peut s’appliquer :

    • NuGet vérifie les sources du dossier local et des partages réseau avant de vérifier les sources HTTP.
  3. Enregistrez une copie du package et d’autres informations dans le dossier http-cache , comme décrit dans La gestion des packages globaux et des dossiers de cache.

  4. Si vous avez téléchargé, installez le package dans le dossier global-packages par utilisateur. NuGet crée un sous-dossier pour chaque identificateur de package, puis crée des sous-dossiers pour chaque version installée du package.

  5. NuGet installe les dépendances de package selon les besoins. Ce processus peut mettre à jour les versions du package dans le processus, comme décrit dans Résolution des dépendances.

  6. Mettez à jour d’autres fichiers et dossiers de projet :

    • Pour les projets utilisant PackageReference, mettez à jour le graphique de dépendances de package stocké dans obj/project.assets.json. Les contenus du package eux-mêmes ne sont pas copiés dans un dossier de projet.
    • Mettez à jour app.config et/ou web.config si le package utilise des transformations de fichier source et de configuration.
  7. (Visual Studio uniquement) Affiche le fichier README du package, le cas échéant, dans une fenêtre Visual Studio.

Profitez de votre codage productif avec des packages NuGet !