web-dev-qa-db-fra.com

Problème avec la désinstallation des paquets NuGet

J'essaie de désinstaller certains paquets installés par NuGet. Selon la doc décrite ici , je devrais voir un bouton Uninstall (première capture d’écran ci-dessous) lorsque je sélectionne le paquet installé. Cependant, je ne vois qu'un bouton Manage (deuxième capture d'écran ci-dessous). Quelqu'un peut-il me dire s'il vous plaît comment désinstaller les paquets?

NuGet Doc Screenshot

My Screenshot

15
StarCub

Enfin, j'ai découvert que je devais modifier manuellement le fichier de solution .sln et supprimer ces lignes:

GlobalSection(ExtensibilityGlobals) = postSolution
        EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35;packages\Unity.Interception.2.1.505.0\lib\NET35;packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Data.5.0.505.0\lib\NET35
EndGlobalSection

Après avoir supprimé les lignes ci-dessus dans le fichier de solution, ces packages ont disparu de la page "Package installé" de la fenêtre des packages de NuGet. Il ne reste plus qu'un seul paquet et je peux maintenant voir le bouton "Désinstaller".

enter image description here

EDIT: Je devais également supprimer le dossier des packages dans le répertoire de ma solution.

13
StarCub

Si vous faites défiler l'écran vers le bas jusqu'à la section Gestion des paquets installés de la page de documentation de NuGet à laquelle vous avez accédé, le bouton Gérer et une explication s'afficheront.

Dans NuGet 1.4 , une nouvelle fonctionnalité a été introduite vous permettant de sélectionner la solution dans l'explorateur de solutions et d'ajouter/supprimer des packages de plusieurs projets en une seule étape. Auparavant, vous deviez sélectionner chaque projet dans l'Explorateur de solutions et ajouter/supprimer le package de chaque projet, l'un après l'autre.

Si vous cliquez sur le bouton Gérer, une boîte de dialogue Sélectionner des projets s'affichera dans laquelle vous pourrez décocher les projets pour lesquels vous souhaitez désinstaller le paquet NuGet. 

enter image description here

Si vous sélectionnez le projet à la place de la solution dans l'explorateur de solutions, vous pouvez ajouter/supprimer des packages de ce projet sélectionné. Dans ce cas, vous ne verrez que les boutons Installer et Désinstaller.

13
Matt Ward

Parfois, certaines dépendances interdisent la désinstallation d'un paquet, mais vous devez le faire quand même (c'est-à-dire si vous installez par inadvertance deux versions différentes d'un paquet avec des dépendances).

Lorsque cela se produit, le seul moyen de désinstaller les packages est de forcer la désinstallation. Cette opération ne peut être effectuée que via la console Package Manager.

Avant d’aller sur la console, vous devez ouvrir la fenêtre Gérer les paquets NuGet, puis noter l’ID et la version de votre paquet, qui apparaissent dans le volet de droite lorsque vous cliquez sur le paquet.

Ensuite, vous pouvez fermer la fenêtre Gérer, ouvrir la console (Package Manager Console) et exécuter cette commande:

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion

Notez le paramètre -Force . Par exemple

uninstall-package -Id Unity -Force -Version 3.0.1304.0

Cette commande permet de désinstaller la version 3 lorsqu'elle est installée en parallèle avec la version 2, ce qui ne peut pas être fait via la fenêtre Gérer.

8
JotaBe

J'ai eu des problèmes similaires récemment. Mon projet a bien fonctionné, mais je ne pouvais plus ajouter ni supprimer de paquet via le gestionnaire de paquets NuGet, car EnterpriseLibrary 5.0.505 était indiqué comme étant absent du code source. Mais l’essai de restauration ou de suppression a échoué avec le message "Impossible de trouver la version '5.0.505 du paquet' EnterpriseLibrary ''".

J'ai tracé cela jusqu'à la référence suivante dans le fichier packages.config:

<package id="EnterpriseLibrary" version="5.0.505" targetFramework="net4" />

En comparant cela avec d'autres solutions auxquelles j'ai ajouté le paquet plus récemment, je l'ai changé en ce qui suit, qui a résolu le problème:

<package id="EnterpriseLibrary.Common" version="5.0.505.0" targetFramework="net4" />

Je n'ai jamais édité manuellement aucun fichier package.config, donc je ne sais pas comment la discordance s'est produite. Peut-être que la référence a changé depuis l'inclusion du paquet sans mettre à jour le fichier de configuration ...?

3
bgx

Après avoir utilisé la boîte de dialogue VS IDE Manage de NuGet Packages ou la console Package Manager, vous devrez peut-être supprimer manuellement les fichiers de solution ou d'autres fichiers du système de fichiers qui font partie du package et ne se trouvent pas dans le dossier packages. 

J'évaluais le package Microsoft.AspNet.FriendlyUrls qui ajoutait une page maître, un contrôle utilisateur, un fichier de code de classe et un fichier packages.config à mon projet/solution d'application Web ASP.NET. J'ai commis l'erreur d'annuler/supprimer manuellement ces fichiers de la solution avant d'utiliser la boîte de dialogue NuGet Packages pour supprimer le package. Tout est devenu confus à ce moment-là. 

Comme d'autres l'ont dit, la suppression du dossier des packages était la solution. Mais ensuite, je devais trouver manuellement les autres fichiers en dehors de ce dossier qui devaient également être supprimés.

0
JohnC

J'ai eu un problème pour supprimer Code first lib CTP5 qui avait des dépendances, la désinstallation ne renvoyait aucun message et ne supprimait rien. Supprimez les références de packages.config que vous devez supprimer. Après cela, il ne sera plus affiché dans nuget et vous pourrez réinstaller ou continuer sans.

0
Egon