web-dev-qa-db-fra.com

Impossible de désinstaller/réinstaller le paquet NuGet

J'ai configuré mon projet avec Visual Studio Express 2012, ajouté du code C # et correctement compilé/déployé sur l'émulateur. À un moment donné, j'ai décidé de faire quelque chose avec JSON et j'ai trouvé que je devais utiliser le framework Json.NET, qui est disponible sous la forme d'un paquet NuGet . J'ai ajouté ce framework avec succès en utilisant la commande Install-Package Newtonsoft.Json.

J'ai essayé d'installer une mise à jour proposée par MSVC il y a deux jours. L'installation a échoué, ce qui m'a empêché d'ouvrir à nouveau mon projet. Réinstaller MSVC n'a pas aidé, alors j'ai fini par restaurer Windows à un état antérieur. J'ai pu ouvrir mon projet à nouveau et je voulais réinstaller le paquet NuGet (sans savoir qu'il est installé dans le projet, pas MSVC). Cela m'a donné des erreurs lors de l'installation, alors j'ai essayé de tout désinstaller à partir de la console du paquet.

Longue histoire courte: 

  • La console du paquet Nuget dit "pas de paquet installé" quand Get-Package 
  • Lancer à nouveau Install-Package Newtonsoft.Json me donne l'erreur

    Newtonsoft.Json 5.0.6 n'a pas pu être installé. Vous essayez d'installer ce package dans un projet faisant référence à "WindowsPhone, Version = v8.0". Toutefois, le package ne contient pas d'assemblys compatibles avec ce cadre.

  • La boîte de dialogue "Gérer les packages NuGet" affiche aucun package sous "installé". Toutefois, dans le package en ligne, le package json est répertorié et marqué comme étant installé (je ne peux donc pas essayer de l'installer).

Maintenant je suis complètement perdu. Je ne sais pas comment installer le paquet correctement, ni comment le supprimer correctement. Mon dossier de projet est-il cassé? Comment puis-je le réparer?


[edit] Maintenant, cela devient encore plus confus. Je viens de mettre à jour le gestionnaire de paquets NuGet (pas MSVC cependant) et j'ai essayé de réinstaller Json.NET.

  • Dans la boîte de dialogue, cela ne s'affiche toujours pas sous "installé"
  • Dans la liste des packages en ligne, il n'est plus indiqué comme installé, mais cliquer sur "Installer" ne fait que rien
  • Get-Package dans la console indique que le paquet est installé 

    PM> Get-Package
    
    Id                             Version              Description/Release Notes                                                                                                                                                                                            
    --                             -------              -------------------------                                                                                                                                                                                            
    Newtonsoft.Json                5.0.6                Json.NET is a popular high-performance JSON framework for .NET
    
  • Essayer de désinstaller avec «Uninstall-Package Newtonsoft.Json» donne «Le package 'Newtonsoft.Json' est introuvable»

  • Dans mon dossier de projet, je peux voir un sous-dossier "Newtonsoft.Json.5.0.6" dans le répertoire packages

Devrais-je tout recommencer à zéro et créer un nouveau projet? : /


Contenu de packages.dgml:

<?xml version="1.0" encoding="utf-8"?>
<DirectedGraph GraphDirection="LeftToRight" xmlns="http://schemas.Microsoft.com/vs/2009/dgml">
  <Nodes />
  <Links />
  <Categories>
    <Category Id="Projekt" />
    <Category Id="Paket" />
  </Categories>
  <Styles>
    <Style TargetType="Node" GroupLabel="Projekt" ValueLabel="True">
      <Condition Expression="HasCategory('Projekt')" />
      <Setter Property="Background" Value="Blue" />
    </Style>
  </Styles>
</DirectedGraph>
34
user826955

Dans votre solution ou votre projet, vous trouverez un fichier appelé packages.config. Ouvrez ce fichier et vous verrez tous les paquets que NuGet a installés.

Le fichier ressemblera à ceci:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Json" version="2.0.3" targetFramework="net45" />
</packages>

Supprimez simplement la ligne de votre paquet et enregistrez le fichier.

<?xml version="1.0" encoding="utf-8"?>
<packages>
</packages>

Ensuite, exécutez à nouveau NuGet et il devrait installer.

Le package JSON.NET NuGet devrait simplement fonctionner avec un projet Windows Phone 8.0 . En l'ajoutant à VS2012, NuGet Manager extrait la version WP7 de JSON.NET. (packages\Newtonsoft.Json.4.5.10\lib\sl3-wp\Newtonsoft.Json.dll)

JSON.NET est maintenant également disponible en tant que bibliothèque de classes portable que vous pouvez utiliser à partir de WP8 (disponible dans NuGet ou sous forme source).

METTRE À JOUR:

La dernière version de NuGet a été désinstallée. 

VS 2013: Dans la solution, cliquez avec le bouton droit de la souris sur Références et Gérer les packages NuGet. Vous trouverez les packages installés dans le coin supérieur gauche. Sélectionnez le package et une option de désinstallation sera disponible.

VS 2015: Dans la solution, cliquez avec le bouton droit sur Références et Gérer les packages NuGet, recherchez l'onglet "Installé" dans le coin supérieur droit. Survolez le paquet et le "X" semblera désinstaller.

VS 2017: Sur la solution, cliquez avec le bouton droit de la souris et sélectionnez "Gérer les packages NuGet pour la solution", recherchez l'onglet "Installé" en haut à gauche. Cliquez sur l'emballage et dans le volet de droite, un bouton "Désinstaller".

44
paqogomez

J'ai eu le même problème. Je n'ai pas pu réinstaller mon paquet même après toutes les modifications apportées à package.config. Voici ce qui fonctionne pour moi.

Dans votre dossier de solution, il devrait y avoir un répertoire "packages". Ouvrez ce répertoire et supprimez le répertoire associé à votre package.

Terminé.

24
Guish

Je suis restée assise quatre heures sur mon nouvel ordinateur Windows 10 et je ne pouvais pas comprendre pourquoi aucune référence ne fonctionnait dans Visual Studio 2015 et pourquoi je ne pouvais pas restaurer les packages NuGet. Pour une raison quelconque, TFS a ajouté deux dossiers de packages:

Emplacements:

C:\Utilisateurs\VotreUtilisateur\Documents\Visual Studio 2015\Projets\VotreProjet\packages 

C:\Users\YourUser\.nuget\packages

Lorsque les deux dossiers de paquets ont été supprimés, je pouvais restaurer les paquets NuGet et tout fonctionnait à nouveau.

7
Ogglas

C'est en effet un peu déroutant, mais différentes options sont disponibles si vous cliquez avec le bouton droit de la souris sur la solution et choisissez gérer les packages de nugets. Vous devriez pouvoir désinstaller à partir de là.

Vous devriez vérifier la réponse ici: Windows Phone 8 JSON pour plus d’informations sur Json.net et WP8.

1
Alex Paven

J'ai eu un problème similaire dans VS2017 (nouvelle installation). Je travaillais avec un projet plus ancien en essayant d'installer un paquet relativement nouveau. Lorsque j'installais le package à partir de l'interface graphique, il clignotait une seconde, puis ne faisait rien.

Le problème était que mon projet avait une cible .NET inférieure à celle du package. (Ma solution visait la version 4.5 et le package, la version 4.6). Remplacer la cible .NET par une version suffisamment nouvelle dans la configuration de mon projet et reconstruire a résolu le problème.

Ce problème peut être constaté en exécutant les commandes suivantes: (Noms modifiés)

PM> Install-Package Package.NET

Attempting to gather dependency information for package 'Package.NET.1.0.0' with respect to project 'MyProject', targeting '.NETFramework,Version=v4.5'
Gathering dependency information took 0.19 ms
Attempting to resolve dependencies for package 'Package.NET.1.0.0' with DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'Package.NET.1.0.0'
Resolved actions to install package 'Package.NET.1.0.0'
Retrieving package 'Package.NET.1.0.0' from 'nuget.org'.
Install failed. Rolling back...
Package 'Package.NET.1.0.0' does not exist in project 'MyProject'
Package 'Package.NET.1.0.0' does not exist in folder 'C:\Code\MyProject\packages'
Executing nuget actions took 13.92 ms
Install-Package : Could not install package 'Package.NET.1.0.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5', 
but the package does not contain any Assembly references or content files that are compatible with that framework. For more information, contact the package author.
At line:1 char:1
+ Install-Package Package.NET
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand
0
pensono

J'ai essayé cette solution et ses travaux

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.Microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
0
Mina Fawzy