NuGet: Für 'X' ist bereits eine Abhängigkeit für 'Y' definiert.

94

Beim Versuch, das Paket zu installieren, wird in NuGet der folgende Fehler angezeigt 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'.

Wie kann ich das Problem beheben?

UPDATE: Außerdem erhalte ich Folgendes:

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.
quelle
Haben Sie versucht, Nuget auf den neuesten Stand zu bringen? Siehe stackoverflow.com/questions/23286522/…
jrummell
2
@jrummell Ich habe: 2.8.50313.46, derzeit kein Update in VS 2013.
TN.

Antworten:

151

Dies wurde durch die Installation des neuesten NuGet Package Managers behoben:

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

Vergessen Sie nicht, Visual Studio neu zu starten.

TN.
quelle
5
Ich habe das neueste Nuget "NuGet Package Manager 2.8.60318.667", aber ich erhalte "Install-Package: 'System.Collections' hat bereits eine Abhängigkeit für 'Microsoft.NETCore.Platforms' definiert". beim Versuch, "Install-Package Microsoft.AspNet.WebHooks.Custom.AzureStorage -Pre" zu installieren
Gopi
2
Ich habe das gleiche Problem wie @TechJerk. In meiner Situation versuche ich, ein Projekt in ein Nuget-Paket zu packen. Ich kann es lokal tun, aber nicht auf dem Build-Server. Auf dem Build-Server bekomme ich 'System.Collections' hat bereits eine Abhängigkeit für 'Microsoft.NETCore.Platforms' definiert. Das Aktualisieren von NuGet hatte keine Auswirkungen.
user3841460
Das funktioniert bei mir. In meinem Fall habe ich versucht, SQLite-net PCL (Xamarin) zu installieren. Visual Studio ist 2013 Ultimate.
ramires.cabral
2
Ich habe das gleiche Problem wie @TechJerk, aber mit 'System.Net.Http' already has a dependency defined for 'System.IO'- Ich habe versucht, NuGet ohne Effekt neu zu installieren und zu aktualisieren (ich verwende derzeit Version 2.8 ... und Visual Studio 2012)
Fehler Philosopher
2
Wenn dieser Fehler in TeamCity auftritt, müssen Sie möglicherweise auch die Einstellungen für den Erstellungsschritt aktualisieren, um die neueste verfügbare Nuget-Version zu verwenden.
Steve Greatrex
74

Ich habe ein ähnliches Problem in meiner Lösung behoben durch:

  1. Öffnen einer Eingabeaufforderung
  2. Navigieren Sie zum .nuget-Ordner in meiner Lösung
  3. Laufen nuget update -self

Dadurch wurde die Kopie NuGet.exemeiner Lösung von 2.8.0auf aktualisiert 3.4.4, wodurch behoben wurde, dass für 'X' bereits eine Abhängigkeit für den Fehler 'Y' definiert ist, die das automatische Herunterladen von SSH.NET vor dem Erstellen verhinderte.

(Wenn Ihre Lösung keine Kopie enthält NuGet.exe- und möglicherweise auch nicht -, sollten Sie die Lösung stattdessen in der Antwort von TN ausprobieren.)

Robyn
quelle
Dies ist derjenige, der es für mich behoben hat, aber ich habe es stattdessen auf dem Build-Server ausgeführt. In den Protokollen für den fehlgeschlagenen Build wurde der Pfad zur betreffenden NuGet.exe angegeben.
InteXX
20

Ich habe das Update ausprobiert, aber es hat bei mir nicht funktioniert. Geholfen:

  1. Deinstallieren Sie NuGet => Tools => Extensions und Update => Installed
  2. Installieren Sie NuGet
  3. Laden Sie Visual Studio neu
HuckFin.7b
quelle
1
Das hat es für mich getan.
Naner
6

Dieser Fehler trat bei einer veralteten Version von Visual Studio 2010 auf. Aufgrund der Projektkonfiguration konnte ich diese Version nicht auf eine neuere Version aktualisieren. Daher hat das oben empfohlene Update von NuGet die Probleme für mich nicht behoben.

Der Hauptgrund für den Fehler in dieser und ähnlichen Situationen liegt in den Abhängigkeiten des zu installierenden Pakets, die nicht mit der in Ihrem Projekt verfügbaren .NET-Version kompatibel sind.

Die universelle Lösung ist kein obligatorisches Update von Visual Studio oder .NET, sondern die Installation älterer NuGet-Versionen desselben Pakets, die mit Ihrem System kompatibel sind.

Es ist nicht sicher zu sagen, welche der früheren Versionen funktionieren wird. In meinem Fall hat dieser Befehl das Paket ohne NuGet-Updates installiert.

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

Ich habe dieses Problem auf unserem TeamCity-Buildserver erhalten. Ich habe versucht, NuGet auf dem Build-Server (über TC) zu aktualisieren, aber das hat nicht funktioniert. Ich habe das Problem endlich gelöst, indem ich den "Update-Modus" des Nuget Installer-Build-Schritts von Lösungsdatei auf geändert habe packages.config.

Stewert
quelle
Danke für die Information. Ich hatte das gleiche Problem + das Aktualisieren von NuGet auf 4.0.0 / nicht als Standard und das Ändern von NuGet auf v4 für diese fehlerhafte Build-Konfiguration hat den Job erledigt!
Dr. ABT
aber wie machst du das
ympostor
3

Ich habe das Problem 'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'auf dem TeamCity-Buildserver erhalten. Ich habe den " Update-Modus " des Nuget Installer-Build-Schritts von der Lösungsdatei in packages.config und NuGet.exe auf die neueste Version (ich hatte 3.5.0) geändert und es hat funktioniert !!

szc0025
quelle
wie geht das??
ympostor
Ich bekomme genau das gleiche Problem.
Jess
Gehen Sie zu Build-Konfigurationseinstellungen, unter Build-Schritte, fügen Sie einen Schritt für NuGet Installer als Runner-Typ hinzu. Ändern Sie den "Update-Modus" des Nuget Installer-Erstellungsschritts von der Lösungsdatei in packages.config und NuGet.exe auf die neueste Version
szc0025
2
  1. Gehen Sie zum Link https://www.nuget.org/packages/ClosedXML/0.64.0
  2. Suchen Sie Ihre NuGet-Pakete
  3. Siehe alle Versionen verwandter Pakete
  4. Installieren Sie die niedrigere Version der Pakete
Rahul
quelle
Dies ist eine gute Lösung für den Fall, dass Ihre Visual Studio-Version zu niedrig ist. In meinem Fall muss ich mit VS2012 arbeiten, das die neueste Version von NuGet nicht unterstützt. Das bedeutet automatisch, dass ich nicht immer die neuesten Pakete über das Fenster "NuGet-Pakete verwalten" herunterladen kann.
Mixxiphoid
1

In meinem Fall musste ich die Datei NuGet.exe im Projektordner /.nuget löschen und das Projekt neu erstellen.

Ich habe auch in NuGet.targets die DownloadNuGetExe als wahr markiert:

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

Hoffe es hilft.

Hernán Dario Velásquez García
quelle
0

Die einzige Lösung, die für mich funktioniert hat, war, Nuget vollständig von Visual Studio 2013 zu deinstallieren und es dann mit dem obligatorischen Neustart von VS dazwischen erneut zu installieren.

user7013486
quelle
0
  1. Gehen Sie zu Extras.
  2. Erweiterungen und Updates.
  3. Aktualisieren Sie Nuget und alle anderen wichtigen Funktionen.
  4. Neustart.

Getan.

Anshul Rawat
quelle
0

In einem Projekt mit vs 2010 konnte ich das Problem nur lösen, indem ich eine ältere Version des Pakets installierte, die ich über die Package Manager-Konsole benötigte.

Dieser Befehl hat funktioniert:

PM> Install-Package EPPlus -Version 4.5.3.1

Dieser Befehl hat nicht funktioniert:

PM> Install-Package EPPlus -Version 4.5.3.2
Genivan
quelle