41 votes

Nuget Update-Package ne reconnaît pas le package installé -> La mise à jour a échoué

J'ai installé un paquet NuGet (que nous avons développé dans le projet) dans un projet VS. Lorsque je lance Update-Package sur le projet Nuget i:

 Update-Package : 'Project name' was not installed in any project. Update failed.
At line:1 char:15
+ Update-Package <<<<  Project name
    + CategoryInfo          : NotSpecified: (:) [Update-Package], InvalidOperationException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UpdatePackageCommand
 

J'ai vérifié dans le fichier package.config que le package NuGet est bien défini. Des indices?

49voto

Mats Mortensen Points 436

Je suis en train de travailler sur le même projet que Tomas et j'ai essayé de comprendre lorsque ce problème se produit et pourquoi. Il semble que ce qui se passe quand on a un ou plus anciennes versions d'un paquet dans le dossier packages et essayer de la question de la "mise à jour-package' de la commande.

Avant d'émettre la commande de notre dossier packages et de configuration ressemble à ceci:

Dossier Packages:

Common.WebApi.1.0.0.109
Common.WebApi.1.0.0.110

Les paquets de config:

<packages>
    <package id="Common.WebApi" version="1.0.0.110" />
    <package id="System.Json" version="4.0.20126.16343" />
    <package id="System.Net.Http" version="2.0.20126.16343" />
</packages>

Maintenant, lors de l'émission 'update-package Commun.WebApi' on obtient l'erreur:
Update-Package : 'OPF.Commun.WebApi' a pas été installé dans n'importe quel projet. Mise à jour a échoué.

Pour le fixer j'ai supprimer l'ancien paquet Commune.WebApi.1.0.0.109' dans le dossier packages et exécutez à nouveau la commande qui fonctionne alors.

La question évidente est: Pourquoi ai-je un vieux paquet dans mon dossier packages? Ce qui nous arrive parce que nous n'avons pas committ nos propres paquets de contrôle à la source. Au lieu de cela, nous utilisons l'approche qui est décrite ici: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

Le "vieux paquet de problème" qui se trouve dans cette situation:
1. Développeur met à jour un package et engage le paquet.la configuration de contrôle de code source
2. Développeur B obtient la dernière version à partir du contrôle de code source et reçoit le package de mise à jour.config
3. Développeur B de la réalisation du projet et le nouveau package est créé dans son dossier packages
4. Nuget ne supprime pas développeur B de l'ancien paquet à partir de son dossier packages afin Développeur B dispose à présent de l'ancien paquet et le nouveau paquet dans son dossier packages, mais seulement une référence dans le package.la configuration de la nouvelle version.

Pour moi, il semble que Nuget ne pas s'attendre à avoir plus d'une version d'un package dans le dossier packages et devient confus lorsque vous essayez de mettre à jour un package qui dispose de plusieurs versions [dans le dossier packages] même si vous faites référence uniquement à un seul package à partir du paquet.config.

5voto

Danny Tuppeny Points 9856

J'ai eu un problème très similaire récemment - il s'est avéré que packages / repositories.config était manquant (car nous ne validons pas le dossier packages). J'ai fait quelque chose dans VS (en ajoutant éventuellement un nouveau package à un projet) qui a amené VS à régénérer le fichier repositories.config répertoriant tous les packages de tous les projets. Après cela, la mise à jour a bien fonctionné.

3voto

jgauffin Points 51913

J'ai eu le même problème. Nous ne vérifions pas le dossier des packages (la tâche de génération de nuget télécharge tous les packages).

Le seul moyen pour moi de résoudre le problème était de supprimer le dossier des packages, puis de reconstruire le projet.

2voto

Saksham Points 93

Voici comment j'ai réussi à obtenir la dernière version du gestionnaire de paquets:

  1. Démarrer VS2010 en mode administrateur (exécuté en tant qu'administrateur)
  2. Outils> Ajouter au gestionnaire> Désinstaller NuGet
  3. Redémarrer Visual Studio
  4. Installer NuGet

Voila!

J'espère que cela t'aides.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X