NuGet: 'X' a déjà une dépendance définie pour 'Y'

94

J'obtiens l'erreur suivante dans NuGet en essayant d'installer le package Microsoft.AspNet.Server.IIS

Attempting to resolve dependency 'Microsoft.AspNet.Loader.IIS.Interop (≥ 1.0.0-alpha4-10330)'.
Attempting to resolve dependency 'Microsoft.AspNet.Loader.IIS (≥ 1.0.0-alpha4-10330)'.
'Microsoft.AspNet.Loader.IIS' already has a dependency defined for 'Microsoft.AspNet.FeatureModel'.

Comment le résoudre?

MISE À JOUR: De plus, j'obtiens ce qui suit:

Attempting to resolve dependency 'Microsoft.Framework.DependencyInjection (≥ 1.0.0-alpha4-10326)'.
'Microsoft.Framework.DependencyInjection' already has a dependency defined for 'Microsoft.Framework.ConfigurationModel'.
TN.
la source
Avez-vous essayé de mettre à jour Nuget vers la dernière version? Voir stackoverflow.com/questions/23286522/…
jrummell
2
@jrummell J'ai: 2.8.50313.46, aucune mise à jour dans VS 2013 actuellement.
TN.

Réponses:

151

Ce problème a été résolu en installant le dernier gestionnaire de packages NuGet:

https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca

N'oubliez pas de redémarrer Visual Studio.

TN.
la source
5
J'ai le dernier Nuget "NuGet Package Manager 2.8.60318.667" mais j'obtiens "Install-Package:" System.Collections "a déjà une dépendance définie pour" Microsoft.NETCore.Platforms "". lors de la tentative d'installation de "Install-Package Microsoft.AspNet.WebHooks.Custom.AzureStorage -Pre"
Gopi
2
J'ai le même problème que @TechJerk, dans ma situation, j'essaie de mettre un projet dans un package nuget. Je peux le faire localement mais pas sur le serveur de construction. Sur le serveur de construction, j'obtiens «System.Collections» a déjà une dépendance définie pour «Microsoft.NETCore.Platforms». La mise à jour de NuGet n'a eu aucun effet.
user3841460
Cela fonctionne pour moi. Dans mon cas, j'essayais d'installer SQLite-net PCL (Xamarin). Visual Studio est 2013 Ultimate.
ramires.cabral
2
J'ai le même problème que @TechJerk mais avec 'System.Net.Http' already has a dependency defined for 'System.IO'- j'ai essayé de réinstaller et de mettre à niveau NuGet sans effet (j'utilise actuellement la version 2.8 ... et Visual Studio 2012)
Blundering Philosopher
2
Si vous obtenez cette erreur dans TeamCity, vous devrez peut-être également mettre à jour les paramètres de l'étape de compilation pour utiliser la dernière version de nuget disponible.
Steve Greatrex
74

J'ai résolu un problème similaire dans ma solution en:

  1. Ouverture d'une invite de commande
  2. Naviguer vers le dossier .nuget dans ma solution
  3. Fonctionnement nuget update -self

Cela a mis à niveau la copie de ce NuGet.exequi était dans ma solution de 2.8.0à 3.4.4, qui a corrigé le 'X' a déjà une dépendance définie pour l'erreur 'Y' qui l'empêchait de télécharger SSH.NET automatiquement avant la construction.

(Si votre solution ne contient pas de copie NuGet.exe- et ce n'est peut-être pas le cas - vous devriez plutôt essayer la solution dans la réponse de TN)

Robyn
la source
C'est celui qui l'a corrigé pour moi, mais je l'ai exécuté sur le serveur de construction à la place. Les journaux de la génération ayant échoué ont indiqué le chemin d'accès à NuGet.exe en question.
InteXX
20

J'ai essayé la mise à jour, mais cela n'a pas fonctionné pour moi. Aidé:

  1. Désinstaller NuGet => Outils => Extensions et mise à jour => Installé
  2. Installer NuGet
  3. Recharger Visual Studio
HuckFin.7b
la source
1
Cela l'a fait pour moi.
Naner
6

J'ai rencontré cette erreur sur une version obsolète de Visual Studio 2010. En raison de la configuration du projet, je n'ai pas pu mettre à jour cette version vers une version plus récente. Par conséquent, la mise à jour de NuGet indiquée ci-dessus n'a pas résolu les choses pour moi.

La raison principale de l'erreur dans cette situation et dans des situations similaires réside dans les dépendances du package que vous essayez d'installer, qui ne sont pas compatibles avec la version .NET disponible dans votre projet.

La solution universelle n'est pas une mise à jour obligatoire de Visual Studio ou .NET mais lors de l'installation d'anciennes versions de NuGet du même package compatible avec votre système.

Il n'est pas possible de dire avec certitude, laquelle des versions antérieures fonctionnera. Dans mon cas, cette commande a installé le package sans aucune mise à jour NuGet.

Install-Package X -Version [compatible version number]
Boris Zinchenko
la source
5

J'avais ce problème sur notre serveur de build TeamCity. J'ai essayé de mettre à jour NuGet sur le serveur de construction (via TC) mais cela n'a pas fonctionné. J'ai finalement résolu le problème en changeant le "Mode de mise à jour" de l'étape de construction de Nuget Installer du fichier de solution à packages.config.

Stewert
la source
Merci pour l'info. J'ai eu le même problème + la mise à jour de NuGet vers 4.0.0 / pas par défaut et le changement de NuGet vers la v4 pour cette configuration de construction qui échouait a fait le travail!
Dr Andrew Burnett-Thompson
Mais comment fais-tu cela?
ympostor
3

'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'J'obtenais le problème sur le serveur de build TeamCity. J'ai changé le " Mode de mise à jour " de l'étape de construction du programme d'installation de Nuget du fichier de solution à packages.config et NuGet.exe à la dernière version (j'avais 3.5.0) et cela a fonctionné !!

szc0025
la source
comment faire ça??
ympostor
Je reçois ce même problème EXACT.
Jess
Accédez aux paramètres de configuration de génération, sous étapes de génération, ajoutez une étape pour NuGet Installer en tant que type Runner. changer le «Mode de mise à jour» de l'étape de construction du programme d'installation de Nuget du fichier de solution à packages.config et NuGet.exe à la dernière version
szc0025
2
  1. Allez sur le lien https://www.nuget.org/packages/ClosedXML/0.64.0
  2. Rechercher vos packages NuGet
  3. Voir la version complète des packages associés
  4. Installez la version inférieure des packages
Rahul
la source
C'est en fait une bonne solution au cas où votre version de Visual Studio serait trop basse. Dans mon cas, je dois travailler avec VS2012, qui ne prend pas en charge la dernière version de NuGet. Cela signifie automatiquement que je ne peux pas toujours télécharger les packages les plus récents via la fenêtre Gérer les packages NuGet.
Mixxiphoid
1

Dans mon cas, j'ai dû supprimer le fichier NuGet.exe dans le dossier Projet /.nuget et reconstruire le projet.

J'ai également dans NuGet.targets le DownloadNuGetExe marqué comme vrai:

<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">true</DownloadNuGetExe>

J'espère que ça aide.

Hernán Dario Velásquez García
la source
0

La seule solution qui a fonctionné pour moi était de désinstaller complètement nuget de Visual Studio 2013, puis de l'installer à nouveau avec le redémarrage obligatoire de VS entre les deux.

utilisateur7013486
la source
0
  1. Allez dans Outils.
  2. Extensions et mises à jour.
  3. Mettez à jour Nuget et toute autre fonctionnalité importante.
  4. Redémarrer.

Terminé.

Anshul Rawat
la source
0

Dans un projet utilisant vs 2010, je n'ai pu résoudre le problème qu'en installant une ancienne version du package dont j'avais besoin via Package Manager Console.

Cette commande a fonctionné:

PM> Install-Package EPPlus -Version 4.5.3.1

Cette commande n'a pas fonctionné:

PM> Install-Package EPPlus -Version 4.5.3.2
Genivan
la source