NuGet: "X" вже має залежність, визначену для "Y"


94

Я отримую наступну помилку в 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'.

Як це вирішити?

ОНОВЛЕННЯ: Також я отримую таке:

Attempting to resolve dependency 'Microsoft.Framework.DependencyInjection (≥ 1.0.0-alpha4-10326)'.
'Microsoft.Framework.DependencyInjection' already has a dependency defined for 'Microsoft.Framework.ConfigurationModel'.

Ви пробували оновити Nuget до останнього? Див stackoverflow.com/questions/23286522 / ...
jrummell

2
@jrummell У мене: 2.8.50313.46, зараз немає оновлень у VS 2013.
Т.Н.

Відповіді:


151

Це було вирішено шляхом встановлення останнього менеджера пакетів NuGet:

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

Не забудьте перезапустити Visual Studio.


5
У мене є останній Nuget "NuGet Package Manager 2.8.60318.667", але я отримую "Install-Package: 'System.Collections" вже має залежність, визначену для "Microsoft.NETCore.Platforms" ". при спробі встановити "Install-Package Microsoft.AspNet.WebHooks.Custom.AzureStorage -Pre"
Gopi

2
У мене така сама проблема, як @TechJerk, у моїй ситуації я намагаюся помістити проект у nuget-пакет. Я можу це зробити локально, але не на сервері збірки. На сервері збірки я отримую 'System.Collections' вже має залежність, визначену для 'Microsoft.NETCore.Platforms'. Оновлення NuGet не мало ніякого ефекту.
користувач3841460

Це працює для мене. У моєму випадку я намагався встановити SQLite-net PCL (Xamarin). Visual Studio - 2013 Ultimate.
ramires.cabral

2
У мене є те саме питання, що і в @TechJerk, але з 'System.Net.Http' already has a dependency defined for 'System.IO'- я спробував перевстановити та модернізувати NuGet без ефекту (я зараз використовую версію 2.8 ... та Visual Studio 2012)
Blundering Philosopher

2
Якщо ви отримуєте цю помилку в TeamCity, то, можливо, вам також знадобиться оновити налаштування кроку збирання, щоб використовувати останню наявну наявну версію.
Стів Грейрекс

74

Я вирішив подібну проблему у своєму рішенні:

  1. Відкриття командного рядка
  2. Перехід до папки .nuget у моєму рішенні
  3. Біг nuget update -self

Це оновило копію, NuGet.exeяка була в моєму рішенні від 2.8.0до 3.4.4, що виправило, що X має вже залежність, визначену для помилки "Y", яка перешкоджала автоматичному завантаженню SSH.NET перед створенням.

(Якщо у вашому рішенні немає копії NuGet.exe- а могло б і не бути - тоді спробуйте рішення замість відповіді TN)


Це той, який мені це виправив, але я замість цього запустив його на сервері збірки. Журнали для невдалої збірки вказали шлях до NuGet.exe, про який йде мова.
InteXX

20

Я спробував оновлення, але це не спрацювало. Допоміг:

  1. Видаліть NuGet => Інструменти => Розширення та оновлення => Встановлено
  2. Встановіть NuGet
  3. Перезавантажте Visual Studio

1
Це зробило це для мене.
Нанер,

6

Я зіткнувся з цією помилкою в застарілій версії Visual Studio 2010. Через конфігурацію проекту я не зміг оновити цю версію до новішої. Тому оновлене оновлення NuGet, про яке було сказано вище, не виправляло мене.

Основна причина помилки в цій та подібних ситуаціях полягає у залежностях пакета, який ви намагаєтесь встановити, які не сумісні з версією .NET, доступною у вашому проекті.

Універсальне рішення - це не обов’язкове оновлення Visual Studio або .NET, а встановлення старих версій NuGet того самого пакету, сумісного з вашою системою.

Не можна точно сказати, яка з попередніх версій буде працювати. У моєму випадку ця команда встановила пакет без будь-яких оновлень NuGet.

Install-Package X -Version [compatible version number]

5

Я отримував цю проблему на нашому сервері збірки TeamCity. Я спробував оновити NuGet на сервері збірки (через TC), але це не спрацювало. Нарешті я вирішив проблему, змінивши "Режим оновлення" кроку збірки програми встановлення Nuget з файлу рішення на packages.config.


Дякуємо за інформацію. У мене була така ж проблема + оновлення NuGet до 4.0.0 / не як за замовчуванням, і зміна NuGet на v4 для цієї конфігурації збірки, яка не вдалася, зробила роботу!
доктор Ендрю Бернетт-Томпсон

але як ти це робиш?
ympostor

3

Я отримував проблему 'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp'на сервері збірки TeamCity. Я змінив " Режим оновлення " кроку збірки програми Nuget Installer з розчину файлу в packages.config і NuGet.exe до останньої версії ( у мене була 3.5.0) , і вона працювала !!


як це зробити ??
ympostor

Я отримую це ТОЧНО те саме питання.
Джесс


Перейдіть до Налаштування конфігурації збірки в розділі Кроки збірки, Додайте крок для програми установки NuGet як тип бігуна. змінити "Режим оновлення" кроку збирання Nuget Installer з файлу рішення на пакунки.config і NuGet.exe на останню версію
szc0025

2
  1. Перейдіть за посиланням https://www.nuget.org/packages/ClosedXML/0.64.0
  2. Шукайте свої пакунки NuGet
  3. Дивіться всю версію пов'язаних пакетів
  4. Встановіть нижню версію пакетів

Це насправді хороше рішення на випадок, якщо версія візуальної студії занадто низька. У моєму випадку мені доводиться працювати з VS2012, який не підтримує найновішу версію NuGet. Це автоматично означає, що я не завжди можу завантажувати новітні пакунки через вікно Manage NuGet Packages.
Mixxiphoid

1

У моєму випадку мені довелося видалити файл NuGet.exe у папці Project /.nuget та відновити проект.

У мене також є в NuGet.targets файл DownloadNuGetExe, позначений як істинний:

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

Сподіваюся, це допомагає.


0

Єдине рішення, яке працювало для мене, - видалити нугет повністю з Visual Studio 2013, а потім встановити його знову з обов'язковим перезапуском VS між ними.


0
  1. Перейдіть до Інструменти.
  2. Розширення та оновлення.
  3. Оновіть Nuget та будь-яку іншу важливу функцію.
  4. Перезапустити.

Зроблено.


0

У проекті, що використовує vs 2010, я зміг вирішити проблему, встановивши стару версію пакету, яка мені потрібна, за допомогою консолі Package Manager.

Ця команда спрацювала:

PM> Install-Package EPPlus -Version 4.5.3.1

Ця команда не спрацювала:

PM> Install-Package EPPlus -Version 4.5.3.2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.