Différentes méthodes d’installer un package NuGetDifferent ways to install a NuGet Package

Les packages NuGet se téléchargent et s’installent suivant les méthodes du tableau ci-dessous (consultez la page Installer des outils clients NuGet s’ils ne sont pas déjà installés).NuGet packages are downloaded and installed using any of the methods in the following table (see Install NuGet client tools if you don't have these installed already). Il est possible de les récupérer dans un cache plutôt que de les télécharger.The package may be retrieved from a cache instead of downloaded.

MéthodeMethod DescriptionDescription
Interface CLI de dotnet.exedotnet.exe CLI
dotnet add package <package_name>
(Toutes les plateformes) Récupère le package identifié par <package_name> et développe son contenu dans un dossier du répertoire actif, puis ajoute une référence au fichier projet.(All platforms) Retrieves the package identified by <package_name>, expands its contents into a folder in the current directory, and adds a reference to the project file. Récupère et installe également les dépendances.Also retrieves and installs dependencies.
Interface utilisateur du Gestionnaire de package (Visual Studio)Package Manager UI (Visual Studio) (Windows et Mac) Fournit une interface utilisateur permettant de parcourir, de sélectionner et d’installer des packages et leurs dépendances dans un projet à partir d’une source de package donnée.(Windows and Mac) Provides a UI through which you can browse, select, and install packages and their dependencies into a project from a specified package source. Ajoute des références aux packages installés dans le fichier projet.Adds references to installed packages to the project file.
Console du Gestionnaire de package (Visual Studio)Package Manager Console (Visual Studio)
Install-Package <package_name>
(Windows uniquement) Récupère et installe le package identifié par <package_name> dans un projet spécifié au sein de la solution à partir d’une source donnée, puis ajoute une référence au fichier projet.(Windows only) Retrieves and installs the package identified by <package_name> from a selected source into a specified project in the solution, then adds a reference to the project file. Récupère et installe également les dépendances.Also retrieves and installs dependencies.
Interface CLI de nuget.exenuget.exe CLI
nuget install <package_name>
(Toutes les plateformes) Récupère le package identifié par <package_name> et développe son contenu dans un dossier du répertoire actif ; peut également récupérer tous les packages listés dans un fichier packages.config.(All platforms) Retrieves the package identified by <package_name> and expands its contents into a folder in the current directory; can also retrieve all packages listed in a packages.config file. Récupère et installe également les dépendances, mais n’apporte aucune modification aux fichiers projet ni à packages.config.Also retrieves and installs dependencies, but makes no changes to project files or packages.config.

Processus d’installation d’un packageWhat happens when a package is installed

En termes simples, les différents outils NuGet créent généralement une référence à un package dans le fichier projet ou packages.config, puis effectuent une restauration de package, ce qui installe le package proprement dit.Simply said, the different NuGet tools typically create a reference to a package in the project file or packages.config, then perform a package restore, which effectively installs the package. nuget install fait figure d’exception : il développe simplement le package dans un dossier packages, sans modifier les autres fichiers.The exception is nuget install, which only expands the package into a packages folder and does not modify any other files.

Le processus général se décompose ainsi :The general process is as follows:

  1. (Tous les outils à l’exception de nuget.exe) Enregistrez la version et l’identificateur de package dans le fichier projet ou packages.config.(All tools except nuget.exe) Record the package identifer and version into the project file or packages.config.

  2. Acquérir le package :Acquire the package:

    • Déterminez si le package (en fonction du numéro de version et de l’identificateur précis) est déjà installé dans le dossier global-packages, comme l’explique la page Gérer les dossiers de packages globaux et de cache.Check if the package (by exact identifer and version number) is already installed in the global-packages folder as described on Managing the global packages and cache folders.

    • Si le package ne se trouve pas dans le dossier global-packages, tentez de le récupérer parmi les sources listées dans les fichiers de configuration.If the package is not in the global-packages folder, attempt to retrieve it from the sources listed listed in the configuration files. Pour les sources en ligne, tentez tout d’abord de récupérer le package dans le cache, sauf si -NoCache est spécifié avec des commandes nuget.exe, ou --no-cache avec dotnet restore.For online sources, attempt first to retrieve the package from the cache unless -NoCache is specified with nuget.exe commands or --no-cache is specified with dotnet restore. (Visual Studio et dotnet add package utilisent toujours le cache.) Si un package est utilisé à partir du cache, « CACHE » s’affiche en sortie.(Visual Studio and dotnet add package always use the cache.) If a package is used from the cache, "CACHE" appears in the output. Le cache a un délai d’expiration de 30 minutes.The cache has an expiration time of 30 minutes.

    • Si le package ne se trouve pas dans le cache, tentez de le télécharger parmi les sources listées dans la configuration.If the package is not in the cache, attempt to download it from the sources listed in the configuration. Si un package est téléchargé, « GET » et « OK » apparaissent en sortie.If a package is downloaded, "GET" and "OK" appear in the output.

    • Si aucune source ne permet de récupérer le package, l’installation échoue à ce stade, avec une erreur du type NU1103.If the package cannot be successfully acquired from any sources, installation fails at this point with an error such as NU1103. Notez que les erreurs des commandes nuget.exe affichent uniquement la dernière source vérifiée, mais implique que le package n’était disponible dans aucune source.Note that errors from nuget.exe commands show only the last source checked, but implies that the package wasn't available from any source.

    Lors de l’acquisition du package, l’ordre des sources de la configuration NuGet peut s’appliquer :When acquiring the package, the order of sources in the NuGet configuration may apply:

    • Pour les projets au format PackageReference, NuGet consulte les partages réseau et le dossier local de sources avant de parcourir les sources HTTP.For projects using the PackageReference format, NuGet checks sources local folder and network shares before checking HTTP sources.

    • Dans le cas des projets utilisant le format de gestion packages.config, NuGet utilise l’ordre des sources de la configuration.For projects using the packages.config management format, NuGet uses the order of the sources in the configuration. Les opérations de restauration font figure d’exception : l’ordre des sources est ignoré et NuGet utilise le package provenant de la première source à répondre.An exception is restore operations, in which case source ordering is ignored and NuGet uses the package from whichever source responds first.

    • En règle générale, l’ordre dans lequel NuGet vérifie les sources n’est pas particulièrement explicite, car n’importe quel package donné avec un identificateur et un numéro de version spécifiques est exactement le même quelle que soit la source sur laquelle il est trouvé.In general, the order in which NuGet checks sources isn't particularly meaningful, because any given package with a specific identifier and version number is exactly the same on whatever source it's found.

  3. (Tous les outils à l’exception de nuget.exe) Enregistrez une copie du package et d’autres informations dans le dossier http-cache, comme l’explique la page Gérer les dossiers de packages globaux et de cache.(All tools except nuget.exe) Save a copy of the package and other information in the http-cache folder as described on Managing the global packages and cache folders.

  4. S’il a été téléchargé, installez le package dans le dossier global-packages de l’utilisateur.If downloaded, install the package into the per-user global-packages folder. NuGet crée un sous-dossier par identificateur de package, puis un sous-dossier par version installée du package.NuGet creates a subfolder for each package identifier, then creates subfolders for each installed version of the package.

  5. Mettez à jour les dossiers et les fichiers projet :Update other project files and folders:

    • Pour les projets qui utilisent PackageReference, mettez à jour le graphique de dépendance de package stocké dans obj/project.assets.json.For projects using PackageReference, update the package dependency graph stored in obj/project.assets.json. Le contenu des packages proprement dits n’est copié dans aucun dossier du projet.Package contents themselves are not copied into any project folder.
    • Dans le cas des projets utilisant packages.config, copiez les parties du package développé qui correspondent à la version cible de .NET Framework du projet dans le dossier packages du projet.For projects using packages.config, copy those parts of the expanded package that match the project's target framework into project's packages folder. (Si vous utilisez nuget install, l’ensemble du package développé est copié, car nuget.exe n’examine pas les fichiers projet pour identifier la version cible de .NET Framework.)(When using nuget install, the entire expanded package is copied because nuget.exe does not examine project files to identify the target framework.)
    • Mettez à jour app.config et/ou web.config si le package utilise des transformations de fichiers config et source.Update app.config and/or web.config if the package uses source and config file transformations.
  6. Installez toutes les dépendances de bas niveau qui ne sont pas déjà présentes dans le projet.Install any down-level dependencies if not already present in the project. Ce processus est susceptible de mettre à jour les versions de package, comme l’explique la page Résolution de dépendances.This process might update package versions in the process, as described in Dependency Resolution.

  7. (Visual Studio uniquement) Affichez le fichier Lisez-moi du package, le cas échéant, dans une fenêtre Visual Studio.(Visual Studio only) Display the package's readme file, if available, in a Visual Studio window.