Обнаружен конфликт версий для Microsoft.EntityFrameworkCore.Install
При добавлении ядра API asp.net в существующий проект, над которым я работаю, возникает следующая ошибка.
"Обнаружен конфликт версий для Microsoft.EntityFrameworkCore.Install/ссылка на Microsoft.EntityFrameworkCore 2.2.1 непосредственно для проекта для решения этой проблемы"
Я пытался добавить пакет Nuget, но у меня возникали конфликты версий в разных пакетах, и процесс всегда заканчивался неудачей.
Сначала я подумал, что это может быть проблемой для моего проекта, поэтому я запустил новое решение с нуля и сумел воспроизвести проблему с помощью нескольких простых шагов.
- Создать новое решение (EFDemo)
- Добавьте новую библиотеку классов .net Core в решение под названием EFDemo.BL
- Добавьте следующие пакеты Nuget в проект EFDemo.BL (поскольку я использую существующую базу данных для моего нового проекта)
- Microsoft.EntityFrameworkCore.SqlServer(v2.2.1)
- Microsoft.EntityFraneworkCore.Tools(v2.2.1)
- Добавьте новое базовое веб-приложение .net с именем EFDemo.Api и выберите шаблон проекта API.
- Добавьте ссылку из EFDemo.BL в EFDemo.Api.
- Построить и увидеть ошибку.
Я рассмотрел следующий пост, но его решение не работает для меня, поскольку у меня нет ссылок на "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
- Загрузите и установите последнюю версию фреймворка (в моем случае dotnet coro 2.2)
- установить максимальную целевую структуру проекта (dotnet coro 2.2 в моем случае) из свойств проекта
- Чистый раствор
4 Восстановить решение
- Обновить любые версии споров (необязательно)
- Восстановите и сохраните.
- Boooommm.. ты в порядке.