NuGet:' X 'уже имеет зависимость, определенную для 'Y'


Я получаю следующую ошибку в 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'.
9 72

9 ответов:

Это было решено путем установки последнего менеджера пакетов NuGet:

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

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

я исправил аналогичную проблему в своем решении:

  1. Открытие командной строки
  2. переход на .папка nuget в моем решении
  3. под управлением nuget update -self

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

(Если решение не есть копия NuGet.exe в нем - и это может быть не так-тогда вы должны попробовать решение в ответе TN вместо этого)

Я попробовал обновить, но это не сработало для меня. Помогли:

  1. удалить из NuGet => Инструменты > Расширения и обновления > установлен
  2. установить nuget
  3. перезагрузить против

Я получал эту проблему на нашем сервере сборки TeamCity. Я попытался обновить NuGet на сервере сборки (через TC), но это не сработало. Я, наконец, решил проблему, изменив "режим обновления" шага сборки установщика Nuget из файла решения в пакеты.конфиг.

Я получал вопрос 'Newtonsoft.Json' already has a dependency defined for 'Microsoft.CSharp' на сервере сборки TeamCity. Я изменил "Режим Обновления " из шага сборки установщика Nuget от решение до пакеты.конфигурации и NuGet.exe до последней версии (у меня 3.5.0) и это сработало !!

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

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

У меня тоже есть в NuGet.цели DownloadNuGetExe помечены как true:

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

надеюсь, что это помогает.

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

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

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

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

Install-Package X -Version [compatible version number]

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