Невозможно использовать "dotnet ef..." - указанная версия каркаса "2.0" не может быть проанализирована

Мой проект строится без каких-либо проблем и может работать без проблем, но я не могу использовать dotnet ef migrations из-за этой странной ошибки:

The specified framework version '2.0' could not be parsed
The specified framework 'Microsoft.NETCore.App', version '2.0' was not found.
  - Check application dependencies and target a framework version installed at:
      /
  - Alternatively, install the framework version '2.0'.

У меня установлена последняя оснастка dotnet - SDK 2.1.4 и среда выполнения 2.0.5.

Может ли кто-нибудь помочь с этим? Я пытался найти любые решения в Интернете, но не нашел ничего работающего...

Ответ 1

Я, наконец, нашел ответ, пройдя некоторые вопросы о GitHub.

Похоже, что это проблема с самим CLI-сетью dotnet, а не с EF-ядром.

Если вы столкнулись с этой проблемой, обновите свой файл .csproj чтобы включить версию среды исполнения: (на момент написания этого сообщения у меня установлен 2.0.5, но проверьте, какая у вас версия и используйте правильную версию, которая у вас есть на вашей машине,

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <RuntimeFrameworkVersion>2.0.5</RuntimeFrameworkVersion>
  </PropertyGroup>

Он решает проблему должным образом. Для меня это выглядит без указанной версии в csproj, dotnet CLI пытается вернуться к 2.0.0, который большинство из нас не имеет на компьютерах из-за обновлений.

Ответ 2

Также может возникнуть другая проблема. Если вам не хватает пакета Microsoft.EntityFrameworkCore.Design NuGet, вы получите ту же ошибку. Поэтому убедитесь, что у вас есть пакет NuGet, на который ссылается проект, в котором вы хотите запускать миграции.

Ответ 3

Добавление этого файла .csproj решило его для меня, следуя этой теме в Github:

<PropertyGroup>
    <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>