NuGet: „X” ma już zależność zdefiniowaną dla „Y”

94

Podczas próby zainstalowania pakietu pojawia się następujący błąd w programie NuGet 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'.

Jak to rozwiązać?

AKTUALIZACJA: Otrzymuję również następujące informacje:

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.
źródło
Czy próbowałeś zaktualizować Nuget do najnowszej wersji? Zobacz stackoverflow.com/questions/23286522/…
jrummell,
2
@jrummell Mam: 2.8.50313.46, obecnie brak aktualizacji w VS 2013.
TN.

Odpowiedzi:

151

Problem został rozwiązany przez zainstalowanie najnowszego Menedżera pakietów NuGet:

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

Nie zapomnij o ponownym uruchomieniu programu Visual Studio.

TN.
źródło
5
Mam najnowszy Nuget „NuGet Package Manager 2.8.60318.667”, ale otrzymuję „Install-Package:„ System.Collections ”ma już zależność zdefiniowaną dla„ Microsoft.NETCore.Platforms ””. podczas próby instalacji „Install-Package Microsoft.AspNet.WebHooks.Custom.AzureStorage -Pre”
Gopi
2
Mam ten sam problem, co @TechJerk, w mojej sytuacji próbuję umieścić projekt w pakiecie nuget. Mogę to zrobić lokalnie, ale nie na serwerze kompilacji. Na serwerze kompilacji otrzymuję „System.Collections” ma już zdefiniowaną zależność dla „Microsoft.NETCore.Platforms”. Aktualizacja NuGet nie przyniosła żadnego efektu.
user3841460
To działa dla mnie. W moim przypadku próbowałem zainstalować SQLite-net PCL (Xamarin). Visual Studio to wersja 2013 Ultimate.
ramires.cabral
2
Mam ten sam problem, co @TechJerk, ale z 'System.Net.Http' already has a dependency defined for 'System.IO'- próbowałem ponownie zainstalować i uaktualnić NuGet bez efektu (obecnie używam wersji 2.8 ... i Visual Studio 2012)
Blundering Philosopher
2
Jeśli otrzymujesz ten błąd w TeamCity, może być również konieczne zaktualizowanie ustawień kroku kompilacji, aby używać najnowszej dostępnej wersji NuGet.
Steve Greatrex
74

Rozwiązałem podobny problem w moim rozwiązaniu przez:

  1. Otwieranie wiersza polecenia
  2. Przechodzenie do folderu .nuget w moim rozwiązaniu
  3. Bieganie nuget update -self

To zaktualizowało kopię tego, NuGet.execo było w moim rozwiązaniu z 2.8.0do 3.4.4, co naprawiło „X” już ma zależność zdefiniowaną dla błędu „Y”, który uniemożliwiał automatyczne pobieranie SSH.NET przed budowaniem.

(Jeśli twoje rozwiązanie nie zawiera kopii NuGet.exe- a może nie - powinieneś zamiast tego wypróbować rozwiązanie w odpowiedzi TN)

Robyn
źródło
To jest ten, który naprawił to dla mnie, ale zamiast tego uruchomiłem go na serwerze kompilacji. Dzienniki nieudanej kompilacji wskazywały ścieżkę do danego NuGet.exe.
InteXX
20

Próbowałem aktualizacji, ale nie zadziałała. Pomógł:

  1. Odinstaluj NuGet => Narzędzia => Rozszerzenia i zaktualizuj => Zainstalowano
  2. Zainstaluj NuGet
  3. Załaduj ponownie Visual Studio
HuckFin.7b
źródło
1
To zrobiło to dla mnie.
Naner
7

Napotkałem ten błąd na nieaktualnej wersji Visual Studio 2010. Ze względu na konfigurację projektu nie mogłem zaktualizować tej wersji do nowszej. Dlatego aktualizacja NuGet, o której mowa powyżej, nie rozwiązała problemu.

Podstawową przyczyną błędu w tej i podobnych sytuacjach są zależności pakietu, który próbujesz zainstalować, które nie są zgodne z wersją .NET dostępną w Twoim projekcie.

Uniwersalnym rozwiązaniem nie jest obowiązkowa aktualizacja Visual Studio czy .NET ale instalacja starszych wersji NuGet tego samego pakietu zgodnego z Twoim systemem.

Nie można powiedzieć na pewno, która z wcześniejszych wersji będzie działać. W moim przypadku to polecenie zainstalowało pakiet bez żadnych aktualizacji NuGet.

Install-Package X -Version [compatible version number]
Boris Zinchenko
źródło
5

Otrzymałem ten problem na naszym serwerze kompilacji TeamCity. Próbowałem zaktualizować NuGet na serwerze kompilacji (za pośrednictwem TC), ale to nie zadziałało. W końcu rozwiązałem problem, zmieniając „Tryb aktualizacji” kroku kompilacji Nuget Installer z pliku rozwiązania na packages.config.

Stewert
źródło
Dzięki za informację. Miałem ten sam problem + aktualizacja NuGet do 4.0.0 / nie jako domyślna i zmiana NuGet na v4 dla tej jednej konfiguracji kompilacji, która kończyła się niepowodzeniem, wykonała zadanie!
Dr Andrew Burnett-Thompson
Ale jak ty to robisz?
ympostor
3

'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'Otrzymałem problem na serwerze kompilacji TeamCity. Zmieniłem „ Tryb aktualizacji ” kroku kompilacji Nuget Installer z pliku rozwiązania na packages.config i NuGet.exe na najnowszą wersję (miałem 3.5.0) i zadziałało !!

szc0025
źródło
jak to zrobić??
ympostor
Otrzymuję ten DOKŁADNY ten sam problem.
Jess
Przejdź do ustawień konfiguracji kompilacji, w obszarze kroki kompilacji Dodaj krok dla Instalatora NuGet jako typ elementu uruchamiającego. zmień „Tryb aktualizacji” kroku kompilacji Nuget Installer z pliku rozwiązania na packages.config i NuGet.exe na najnowszą wersję
szc0025
2
  1. Przejdź do linku https://www.nuget.org/packages/ClosedXML/0.64.0
  2. Przeszukaj pakiety NuGet
  3. Zobacz wszystkie wersje powiązanych pakietów
  4. Zainstaluj niższą wersję pakietów
Rahul
źródło
To naprawdę dobre rozwiązanie, jeśli twoja wersja Visual Studio jest zbyt niska. W moim przypadku muszę pracować z VS2012, który nie obsługuje najnowszej wersji NuGet. To automatycznie oznacza, że ​​nie zawsze mogę pobrać najnowsze pakiety za pośrednictwem okna Zarządzaj pakietami NuGet.
Mixxiphoid
1

W moim przypadku musiałem usunąć plik NuGet.exe w folderze projektu /.nuget i odbudować projekt.

Mam również w NuGet.targets plik DownloadNuGetExe oznaczony jako true:

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

Mam nadzieję, że to pomaga.

Hernán Dario Velásquez García
źródło
0

Jedynym rozwiązaniem, które zadziałało dla mnie, było całkowite odinstalowanie nuget z Visual Studio 2013, a następnie zainstalowanie go ponownie z obowiązkowym ponownym uruchomieniem VS pomiędzy.

user7013486
źródło
0
  1. Idź do Narzędzia.
  2. Rozszerzenia i aktualizacje.
  3. Zaktualizuj Nuget i inne ważne funkcje.
  4. Uruchom ponownie.

Gotowe.

Anshul Rawat
źródło
0

W projekcie korzystającym z vs 2010 udało mi się rozwiązać problem tylko poprzez zainstalowanie starszej wersji pakietu, którego potrzebowałem, za pośrednictwem konsoli Menedżera pakietów.

To polecenie zadziałało:

PM> Install-Package EPPlus -Version 4.5.3.1

To polecenie nie zadziałało:

PM> Install-Package EPPlus -Version 4.5.3.2
Genivan
źródło