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 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 не повлияло.
user3841460 05

У меня это работает. В моем случае я пытался установить 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, вам также может потребоваться обновить настройки этапа сборки, чтобы использовать последнюю доступную версию nuget.
Стив Грейтрекс,

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
Это сделало это для меня.
Naner

7

Я столкнулся с этой ошибкой в ​​устаревшей версии Visual Studio 2010. Из-за конфигурации проекта мне не удалось обновить эту версию до более новой. Таким образом, обновление NuGet, рекомендованное выше, не помогло мне исправить ситуацию.

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

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

Точно сказать, какая из более ранних версий будет работать, невозможно. В моем случае эта команда установила пакет без каких-либо обновлений NuGet.

Install-Package X -Version [compatible version number]

5

У меня возникла эта проблема на нашем сервере сборки TeamCity. Я попытался обновить NuGet на сервере сборки (через TC), но это не сработало. Я наконец решил проблему, изменив «Режим обновления» на этапе сборки Nuget Installer с файла решения на 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 в качестве типа Runner. измените «Режим обновления» шага сборки Nuget Installer с файла решения на packages.config и NuGet.exe на последнюю версию
szc0025,

2
  1. Переходим по ссылке https://www.nuget.org/packages/ClosedXML/0.64.0
  2. Найдите свои пакеты NuGet
  3. Посмотреть все версии связанных пакетов
  4. Установите младшую версию пакетов

На самом деле это хорошее решение, если ваша версия Visual Studio слишком низкая. В моем случае мне приходится работать с VS2012, который не поддерживает новейшую версию NuGet. Это автоматически означает, что я не всегда могу загрузить новейшие пакеты через окно «Управление пакетами NuGet».
Mixxiphoid

1

В моем случае мне пришлось удалить файл NuGet.exe в папке проекта /.nuget и пересобрать проект.

У меня также есть в NuGet.targets DownloadNuGetExe, отмеченный как true:

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

Надеюсь, это поможет.


0

Единственное решение, которое сработало для меня, было полностью удалить nuget из Visual Studio 2013, а затем установить его снова с обязательным перезапуском VS между ними.


0
  1. Зайдите в Инструменты.
  2. Расширения и обновления.
  3. Обновите Nuget и любую другую важную функцию.
  4. Начать сначала.

Готово.


0

В проекте, использующем vs 2010, я смог решить проблему, только установив старую версию пакета, которая мне нужна, через консоль диспетчера пакетов.

Эта команда работала:

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.