web-dev-qa-db-fra.com

Nuget ne met pas à jour les références de projet

J'ai récemment migré tous mes projets Visual Studio 2013 vers Visual Studio 2015 et j'ai suivi les étapes décrites dans cet article article de Nuget pour m'assurer que la restauration automatique du package fonctionne toujours.

  • J'ai supprimé les fichiers Nuget.exe et Nuget.target du contrôle de source et du disque.
  • J'ai mis à jour tous les fichiers du projet et supprimé les sections relatives à Nuget

Je rencontre un problème lorsque je mets à jour des packages Nuget. Il ne s'agit pas de mettre à jour les références de projet pour pointer vers les versions les plus récentes de dll. Je peux voir que les derniers paquets ont été installés cependant. Ce problème n'est pas non plus lié à des packages spécifiques.

Quelqu'un d'autre a-t-il rencontré un problème comme celui-ci?

11
user65439

Nous nous sommes rendus compte que certains de nos développeurs débutants n’installaient que les packages Nuget requis pour ONE projet dans la solution. Ils ont ensuite ajouté des références aux dll requises pour tous les autres projets en recherchant l’emplacement physique des dll sur le disque. Cela posait évidemment le problème, car UN seul des projets de la solution contenait des entrées pour les packages Nuget dans son fichier packages.config, alors que les projets restants de la solution n'en contenaient aucun. 

Lorsque tous les packages ont été mis à jour à l'aide de la commande Update-Package, seul le projet ONE contenant des entrées dans son fichier packages.config a été mis à jour avec les références de projet correctes.

Même s'il ne s'agit pas d'un bogue de Nuget, mais plutôt d'un problème dû à l'inexpérience, j'ai consigné un issue avec Nuget pour voir s'ils peuvent améliorer le logiciel afin d'éviter ce type de problèmes.

4
user65439

La restauration du package NuGet ne modifie pas les fichiers du projet. Il télécharge et extrait simplement les paquets NuGet dans le répertoire des paquets.

Si vous essayez de modifier le fichier packages.config et que le projet est mis à jour, vous devrez utiliser la console Package Manager et exécuter:

Update-Package -reinstall

Qui désinstallera et installera à nouveau les packages et mettra à jour les références du projet.

13
Matt Ward

J'ai donc eu récemment un problème très similaire, malheureusement, la désinstallation et la réinstallation ne fonctionnaient pas. Espérons que cela aide quelqu'un d'autre car c'était très frustrant. 

Pas:

  1. aller à ou lancer la fonctionnalité de lancement rapide. 
  2. gestionnaire de paquets de type
  3. sélectionnez "outils-> Nuget PackageManager-> Paramètres du gestionnaire de paquets"
  4. Dans la fenêtre d'options qui apparaît. cliquez sur "Effacer tout le (s) cache (s) Nuget"
  5. Cliquez avec le bouton droit sur la solution et sélectionnez Restaurer les paquets Nuget.

J'espère que cela t'aides.

2
jtslugmaster08

Je rencontrais un problème avec le package NuGet de Newtonsoft.Json, comme indiqué ci-dessous:

 enter image description here

J'ai essayé toutes les solutions possibles mais aucune des solutions mentionnées ci-dessous n'a fonctionné:

  • Solution de nettoyage
  • Solution de reconstruction
  • Effacement du cache du paquet NuGet

Enfin, j'ai réalisé que cela avait quelque chose à voir avec la version .NET Framework ciblée par mon projet C #. Il semble y avoir eu un décalage. Au moment où j'ai mis à niveau la version .NET Framework de mon projet vers la dernière version, la dépendance du paquet Newtonsoft.Json et sa référence sont devenues vivantes instantanément.

1
RBT

Quelque chose que je viens de remarquer, et je ne suis pas sûr que cela puisse vous aider ou aider une autre personne à le lire, mais cette question m'a littéralement ébranlé le cerveau. Le problème était que j'installais des packages que j'avais moi-même créés à l'aide de NuGet Package Explorer sous Windows. 

Il est apparu que, après la mise à jour de NuGet Package Explorer, il ne mettait plus les DLL que j'avais incluses dans le dossier lib. Une fois que j'ai commencé à ajouter manuellement le dossier lib dans le package dans l'Explorateur de packages, puis à télécharger sur NuGet et à le réinstaller dans le projet consommateur, la référence recommencait à apparaître.

Je ne suis pas sûr de ce qui a provoqué ce comportement - cela aurait pu être de ma faute, mais je viens littéralement de comprendre cela maintenant - et par conséquent, je dois revenir en arrière et refaire tout un tas de bons paquets NuGet que j'ai déjà réalisés le mois dernier. AIE.

J'espère que cela sauvera au moins une once de douleur.

0
joelc