Gérer des packages avec la console du gestionnaire de package de Visual Studio (PowerShell)

La console du gestionnaire de package dans Visual Studio utilise des commandes PowerShell pour interagir avec les packages NuGet. Vous pouvez utiliser la console quand il n’existe aucun moyen d’effectuer une opération via l’interface utilisateur du Gestionnaire de package. Vous pouvez également utiliser les commandes de l’interface CLI dotnet ou CLI NuGet dans la console.

Cet article explique comment rechercher, installer, mettre à jour et désinstaller des packages NuGet avec des commandes PowerShell dans la console Gestionnaire de package. Pour obtenir la référence complète des commandes PowerShell de la console du Gestionnaire de package, consultez la référence PowerShell.

Important

Les commandes et arguments PowerShell de cet article sont spécifiques à la console du Gestionnaire de package de Visual Studio. Ces commandes diffèrent des commandes du module PackageManagement généralement utilisables au sein d’un environnement PowerShell général. Chaque environnement possède des commandes qui ne sont pas disponibles dans un autre. Des commandes qui portent le même nom peuvent nécessiter des arguments spécifiques différents.

Disponibilité de la console

À partir de Visual Studio 2017, NuGet et le gestionnaire de package NuGet sont automatiquement installés quand vous créez une charge de travail liée à .NET dans Visual Studio. Vous pouvez également installer le gestionnaire de package en sélectionnant Composants individuels>Outils de code>Gestionnaire de package NuGet dans Visual Studio Installer.

Vous pouvez également rechercher l’extension gestionnaire de package NuGet dans le menu Outils>Extensions et mises à jour ou le menu Extensions. Si vous ne pouvez pas utiliser le programme d’installation des extensions dans Visual Studio, vous pouvez télécharger l'extension directement à partir de https://dist.nuget.org/index.html.

La console du Gestionnaire de package est intégrée au gestionnaire de package pour Visual Studio sur Windows. Visual Studio Code et Visual Studio pour Mac n’incluent pas la console. Visual Studio pour Mac dispose d’une IU dédiée gestion des packages NuGet. Les commandes de console équivalentes sont disponibles via l’interface CLI NuGet. Pour plus d'informations, consultez Installer et gérer des packages NuGet dans Visual Studio pour Mac.

Rechercher et installer rapidement un package

Pour utiliser la console Gestionnaire de package afin de rechercher et installer rapidement un package :

  1. Ouvrez le projet ou la solution dans Visual Studio, puis sélectionnez Outils>Gestionnaire de package NuGet>Console du Gestionnaire de package pour ouvrir la fenêtre de la console du gestionnaire de package.

  2. Dans la console, saisissez Find-Package avec un mot clé pour recherche le package que vous souhaitez installer. Par exemple, pour rechercher des packages contenant le mot clé elmah, exécutez la commande suivante. Si vous connaissez déjà le nom du package souhaité, vous pouvez ignorer cette étape.

    Find-Package elmah
    
  3. Une fois le nom trouvé, utilisez la commande Install-Package pour installer le package. Par exemple, pour installer le package Elmah.MVC, saisissez :

    Install-Package Elmah.MVC
    

Pour plus d’informations sur ces commandes, consultez les sections Rechercher un package et Installer un package.

Conseil

De nombreuses opérations de console dépendent d’une solution dans ouverte dans Visual Studio avec un nom de chemin d’accès connu. Si vous avez une solution non enregistrée ou n’avez pas de solution, l’erreur La solution n’est pas ouverte ou n’est pas enregistrée. Vérifiez que vous disposez d’une solution ouverte et enregistrée. Pour corriger l’erreur, créez et enregistrez une solution, ou enregistrez la solution non enregistrée.

Contrôles de console

Pour ouvrir la console du gestionnaire de package dans Visual Studio, sélectionnez Outils>Gestionnaire de package NuGet>Console du gestionnaire de package dans le menu supérieur. La console est une fenêtre Visual Studio que vous pouvez organiser et positionner à votre convenance. Pour plus d’informations, consultez Personnalisation des dispositions de fenêtres dans Visual Studio.

Par défaut, les commandes de la console fonctionnent sur la source de package et sur un projet spécifiques, visibles dans les contrôles en haut de la fenêtre :

Screenshot that shows the Package Manager Console controls for package source and project.

La sélection d’une autre source ou d’un autre projet de package modifie ces valeurs par défaut pour les commandes suivantes. Pour remplacer ces paramètres pour les commandes uniques sans modifier les valeurs par défaut, la plupart des commandes de console de prennent en charge les options -Source et -ProjectName.

Pour gérer les sources de package, sélectionnez l’icône en forme d’engrenage, qui ouvre la zone de dialogue Outils>Options>Gestionnaire de package NuGet>Sources de package. Le contrôle situé à droite du sélecteur de projets efface le contenu de la console.

Screenshot that shows the Package Manager Console settings and clear controls.

Le bouton tout à droite interrompt une commande dont l’exécution dure longtemps. Par exemple, l'exécution de listes Get-Package -ListAvailable -PageSize 500 répertorie les 500 premiers packages sur la source par défaut, par exemple, nuget.org. Cela peut prendre plusieurs minutes.

Screenshot that shows the Package Manager Console stop control.

Rechercher un package

Pour rechercher un package dans la source par défaut, utilisez Find-Package.

  • Pour rechercher et répertorier des packages qui contiennent certains mots clés :

    Find-Package <keyword1>
    Find-Package <keyword2>
    
  • Pour rechercher et répertorier les packages dont le nom commence par une chaîne :

    Find-Package <string> -StartWith
    
  • Par défaut, Find-Package retourne une liste de 20 packages. Utilisez -First pour afficher plus de packages. Par exemple, pour afficher les 100 premiers packages, utilisez :

    Find-Package <keyword> -First 100
    
  • Répertoriez toutes les versions d’un même package :

    Find-Package <PackageName> -AllVersions -ExactMatch
    

Installer un package

Pour installer un package dans le projet par défaut, utilisez Install-Package <PackageName>. La commande de console Install-Package effectue les actions suivantes :

  • Réalisation des étapes décrites dans Que se passe-t-il lors de l’installation d’un package NuGet.
  • Affichage des termes du contrat de licence applicables dans la fenêtre de console et acceptation implicite de ceux-ci. Si vous ne souhaitez pas accepter pas les termes du contrat, vous devez désinstaller le package.
  • Ajout d’une référence au package dans le fichier projet et dans Explorateur de solutions sous le nœud Références. Vous devez enregistrer le projet avant de pouvoir voir les modifications opérées dans le fichier projet.

Par défaut, Install-Package ajoute le package au projet par défaut spécifié par la fenêtre de console. Pour ajouter le package à un projet qui n’est pas celui par défaut, utilisez l’option -ProjectName. Par exemple, pour ajouter le package Elmah.MVC au projet UtilitiesLib, qui n’est pas le projet par défaut, exécutez la commande suivante :

Install-Package Elmah.MVC -ProjectName UtilitiesLib

Désinstaller un package

Pour désinstaller un package situé dans le projet par défaut, utilisez Uninstall-Package <PackageName>. Si vous avez besoin de trouver le nom du package, utilisez Get-Package pour afficher tous les packages actuellement installés dans le projet par défaut.

Uninstall-Package effectue les actions suivantes :

  • Suppression des références au package provenant du projet, quel que soit le format de gestion. Les références ne s’affichent plus dans l’Explorateur de solutions. Vous devrez peut-être régénérer le projet pour le supprimer les référence du dossier Bin.
  • Inversion de toutes les modifications apportées au package dans app.config ou web.config.
  • Supprime les dépendances précédemment installées si aucun package restant ne les utilise.

Pour désinstaller un package et toutes ses dépendances inutilisées, exécutez :

Uninstall-Package <PackageName> -RemoveDependencies

Pour désinstaller un package même si d’autres packages dépendent de celui-ci, exécutez :

Uninstall-Package <PackageName> -Force

Mettre à jour un package

Pour mettre à jour un package, utilisez Get-Package et Update-Package. Vous pouvez exécuter les commandes suivantes :

  • Pour vérifier s’il existe des versions plus récentes disponibles pour les packages installés :

    Get-Package -updates
    
  • Pour mettre à jour un package spécifique :

    Update-Package <PackageName>
    
  • Pour mettre à jour tous les packages dans un projet :

    Update-Package -ProjectName <ProjectName>
    
  • Pour mettre à jour tous les packages de la solution :

    Update-Package
    

Utiliser l’interface CLI NuGet dans la console

Vous pouvez également effectuer la plupart des opérations de console à l’aide l’interface CLI NuGet. Cependant, les commandes de la console PowerShell fonctionnent dans le contexte de projets et de solutions Visual Studio enregistrées. Généralement ces commandes accomplissent souvent plus de choses que leurs commandes CLI NuGet équivalentes. Par exemple, l’installation d’un package via Install-Package ajoute une référence au fichier projet, ce que la commande de l’interface CLI NuGet ne fait pas. Pour cette raison, les développeurs qui travaillent dans Visual Studio préfèrent généralement utiliser les commandes de console plutôt que l’interface CLI NuGet.

Pour utiliser des commandes CLI NuGet dans la console du gestionnaire de package, installez le package NuGet.CommandLine.

Install-Package NuGet.CommandLine

La commande précédente installe la dernière version de l’interface CLI NuGet. Pour installer une version spécifique, utilisez l’option -Version. Par exemple, pour installer la version 4.4.1, saisissez :

Install-Package NuGet.CommandLine -Version 4.4.1

Après avoir installé le package NuGet.CommandLine, vous pouvez exécuter toutes les commandes de l’interface CLI NuGet via la console du gestionnaire de package.

Étendre la console du gestionnaire de package

Certains packages installent de nouvelles commandes pour la console. Par exemple, MvcScaffolding crée des commandes telles que Scaffold, qui génère des vues et des contrôleurs MVC ASP.NET :

Screenshot that shows NuGet CLI commands available after installing the NuGet.CommandLine package.

Configurer un profil PowerShell NuGet

Vous pouvez créer un profil PowerShell pour rendre disponibles vos commandes couramment utilisées dans tous les contextes PowerShell. Vous ne perdez donc pas vos paramètres PowerShell entre les sessions. NuGet prend en charge un profil spécifique à NuGet, généralement à l’emplacement %UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1.

Pour trouver l’emplacement de votre profil utilisateur, saisissez $profile dans la console :

$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1

Pour déterminer si un profil existe ou non à cet emplacement, saisissez test-path $profile. Si la commande retourne False, vous devez créer le profil avec le nom spécifié à cet emplacement. Pour plus d’informations, consultez Profil Windows PowerShell.

Étapes suivantes