Проблема миграции dotnet ef в Ubuntu 19.10. Dotnet SDK 3.1.1

Я установил dotnet ef инструмент для генерации миграций для основного проекта dotnet, над которым я работаю, используя команду. dotnet tool install -g dotnet-ef. Установка прошла успешно. Для того, чтобы намdotnet ef я установил пакеты nuget ниже

  1. Microsoft.EntityFrameworkCore.SqlServer
  2. Microsoft.EntityFrameworkCore
  3. Microsoft.AspNetCore.Identity.EntityFrameworkCore
  4. Microsoft.EntityFrameworkCore.Tools

При попытке сгенерировать миграции с помощью команды dotnet ef migrations add IdentityandCategory я получаю результат ниже.

It was not possible to find any compatible framework version
The framework 'Microsoft.NETCore.App', version '3.1.1' was not found.
  - The following frameworks were found:
      2.1.14 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]
      2.2.8 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]
      3.1.0 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:
  - https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=3.1.1&arch=x64&rid=ubuntu.19.10-x64

Я переустановил dotnet 3.1.1, но проблема не исчезла. dotnet info кажется, обнаруживает версию, когда я запускаю donet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.1.100
 Commit:    cd82f021f4

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  19.10
 OS Platform: Linux
 RID:         ubuntu.19.10-x64
 Base Path:   /usr/share/dotnet/sdk/3.1.100/

Host (useful for support):
  Version: 3.1.0
  Commit:  157910edee

.NET Core SDKs installed:
  2.1.802 [/usr/share/dotnet/sdk]
  2.2.402 [/usr/share/dotnet/sdk]
  3.1.100 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.14 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.14 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.14 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

Как я могу решить эту проблему? Заранее благодарю за вашу помощь

1 ответ

Решение

Сегодня я столкнулся с этой проблемой в Azure Pipelines. Самый простой способ исправить это - явно установитьdotnet-ef указав точную версию, которая вам нужна.

dotnet tool install --global dotnet-ef --version 3.1.0

Я считаю, что версия.NET Core Runtime и dotnet-efверсия должна быть синхронизирована. Поскольку недавно было выпущено исправление безопасности, которое увеличило время выполнения.NET Core до3.1.1, есть несоответствие, поэтому он жалуется.

Тем не менее, вероятно, будет разумным просто обновить все до 3.1.1 когда позволяет время.

Другие вопросы по тегам