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'.

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.


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)


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

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]

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.


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 !!


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

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.


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.


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

Gotowe.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.