Обнаружен конфликт версий для Microsoft.EntityFrameworkCore.Install

При добавлении ядра API asp.net в существующий проект, над которым я работаю, возникает следующая ошибка.

"Обнаружен конфликт версий для Microsoft.EntityFrameworkCore.Install/ссылка на Microsoft.EntityFrameworkCore 2.2.1 непосредственно для проекта для решения этой проблемы"

Я пытался добавить пакет Nuget, но у меня возникали конфликты версий в разных пакетах, и процесс всегда заканчивался неудачей. Сначала я подумал, что это может быть проблемой для моего проекта, поэтому я запустил новое решение с нуля и сумел воспроизвести проблему с помощью нескольких простых шагов.

  1. Создать новое решение (EFDemo)
  2. Добавьте новую библиотеку классов .net Core в решение под названием EFDemo.BL
  3. Добавьте следующие пакеты Nuget в проект EFDemo.BL (поскольку я использую существующую базу данных для моего нового проекта)
  4. Microsoft.EntityFrameworkCore.SqlServer(v2.2.1)
  5. Microsoft.EntityFraneworkCore.Tools(v2.2.1)
  6. Добавьте новое базовое веб-приложение .net с именем EFDemo.Api и выберите шаблон проекта API.
  7. Добавьте ссылку из EFDemo.BL в EFDemo.Api.
  8. Построить и увидеть ошибку.

Я рассмотрел следующий пост, но его решение не работает для меня, поскольку у меня нет ссылок на "Microsoft.EntityFrameworkCore" ни в одном из моих файлов csproj. Обнаружен конфликт версий для пакетов NuGet.

Я также переустановил .net SDK, перезагрузил миллион раз и до сих пор не могу понять, в чем проблема.

Ответ 1

Я недавно столкнулся с той же ошибкой.

Что я сделал, чтобы разобраться в этом:

Установлен .Net Core 2.2 SDK

Затем в моем проекте я изменил все файлы .csproj:

  <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>

тогда как раньше это было:

      <PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>

Это сразу помогло, и ошибка исчезла.

Ответ 2

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

  • Обновите VS до последней версии (v15.9.3)
  • Удалите .Net Core 2.1 и 2.2 SDK (в то время мой проект использовал 2.1)
  • Установите .Net Core 2.2 SDK
  • Конвертируйте все проекты в моем решении для использования .Net Core 2.2 (Больно. Хотелось бы, чтобы была функция Retarget All!)
  • Перезагрузка, очистка, сборка и все работает. Уф.

Теперь, чтобы сделать некоторую работу, а не бороться с моими инструментами!

Ответ 3

Для меня это помогло этой статье, это было очень простое изменение конфигурации, которое я забыл изменить:

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>

https://dotnetcoretutorials.com/2018/11/18/how-to-target-net-core-2-2/

Ответ 4

Я исправил это, просто установив .NET Core 2.2 и изменив тег TargetFramework на netcoreapp2.

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>

Ответ 5

Я не уверен, какой пакет вы установили в своем проекте.

Но теперь визуальная студия добавляет только один пакет nuget, который включает в себя весь необходимый пакет для основного приложения asp.net.

Попробуйте установить этот пакет, удалите все остальные пакеты и посмотрите, что работает для вас.

Microsoft.AspNetCore.All

Таким образом, у вас не будет конфликта версий, по крайней мере, в пакетах Microsoft. Затем вы можете проверить другой установленный вами внешний пакет, который вызывает проблемы.

Ответ 6

Для меня это помогло, сэкономил много времени.

<PropertyGroup>
  <TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>

Ответ 7

Это помогло мне и избавило меня от разочарований

   <TargetFramework>netcoreapp2.2</>

Ответ 8

  1. Загрузите и установите последнюю версию фреймворка (в моем случае dotnet coro 2.2)
  2. установить максимальную целевую структуру проекта (dotnet coro 2.2 в моем случае) из свойств проекта
  3. Чистый раствор 4 Восстановить решение
  4. Обновить любые версии споров (необязательно)
  5. Восстановите и сохраните.
  6. Boooommm.. ты в порядке.