Пакет "EntityFramework 6.2.0" был восстановлен с использованием ".NETFramework, Version = v4.6.1" вместо целевой среды проекта ".NETCoreApp, Version = v2.0",

Я сделал веб-приложение.net core 2.0. Я добавил Entity Framework 6.2.0 с помощью NUGET, а затем получаю эту ошибку

Пакет "EntityFramework 6.2.0" был восстановлен с использованием ".NETFramework, Version = v4.6.1" вместо целевой целевой платформы.NETCoreApp, Version = v2.0. Этот пакет может быть несовместим с вашим проектом.

Как это исправить?

Ответ 1

Проблема заключается в том, что ваша версия сущности путается с .NetFramework и .NetCore. Рамка целевых приложений - Asp.Net Core. Поэтому вы должны установить пакет, связанный с Asp.net Core

В вашем случае 'EntityFramework 6.2.0' поддерживается .NETFramework,Version=v4.6.1' не '.NETCoreApp,Version=v2.0'. Поэтому используйте эту ниже версию инфраструктуры сущностей вместо вашей.

PM>  Install-Package Microsoft.EntityFrameworkCore -Version 2.0.1 

Ответ 2

Измените свой проект на .NETFramework,Version=v4.6.1 или выберите Entity Framework .NETCoreApp,Version=v2.0 который поддерживает .NETCoreApp,Version=v2.0

Ответ 3

В качестве альтернативы вы можете изменить целевую инфраструктуру на net461, как показано ниже.

<TargetFramework>net461</TargetFramework>

Изменив целевую инфраструктуру на net461, вы сможете использовать ядро .net и полные.net-структуры. Я думаю, что за этот период этот подход лучше. Поскольку EF Core по-прежнему не имеет некоторых основных функций, таких как отношения многих и многих, и некоторые другие. Конечно, это зависит от ваших потребностей и ожиданий от инструмента ORM.

Ответ 4

Использую сообщество редакции VS2017 версии 15.8.6. Получая ту же ошибку, пока я пытаюсь добавить Entity Framework 6.2.0 или любую версию по этому вопросу.

Ошибка: пакет 'Entity Framework6.2.0 был восстановлен с использованием .net Framework версия = v4.6.1 вместо целевой платформы проекта .netCoreApp, версия = v2.1. Этот пакет может быть не полностью сопоставим с вашим проектом.

Решения, которые я пробовал: попытался запустить комментарий из командной строки nuget. Поэтому они добавляют пакет MICROSOFT.EntityFrameworkCore.SqlServer -V 2.0.0. Попытка путем добавления AutogenerateBindingRedircts как true, как упоминалось на одном из форумов. Оба решения не спомогли мне.

Попробовал изменить версию проекта и версию ditnetcore тоже. Не работал для меня

Любая помощь будет оценена. !!

Ответ 5

У меня была та же проблема, и меня представили, изменив мое решение на использование новой TargetFramework.

<TargetFramework>netcoreapp2.2</TargetFramework>

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

Добавление пакетов в этой последовательности решило это для меня:

Microsoft.EntityFrameworkCore
Microsoft.AspNetCore.Identity

Ответ 6

В моем случае мой проект был Core 2.2. Сначала я установил (NuGet) Microsoft.EntityFrameworkCore v2.2.4, и все было в порядке. Затем я случайно установил Microsoft.AspNet.Identity, а не Microsoft.AspNetCore.Idendity(v2.2.0). Как только мои глаза заметили недостающее "Ядро" в пакете .Identity, и я исправил его, удалив неправильное и установив правильное, предупреждения исчезли. Я ожидаю, что я не единственный, кто пошел немного быстрее на установках Nuget в новом проекте :)