Bezdepbonusu7Программирование: статьи и ответы

Вопрос

EF Core 1.1-preview1 Ошибка добавления-миграции

Автор вопроса: Mats391Ответов: 2

Я пытаюсь обновить свой проект сетевого ядра до версии 1.1-preview, а также ядро ​​EF до той же версии. Восстановление project.json работает нормально, но как только я пытаюсь использовать такие команды, как Add-Migration, происходит сбой с этой ошибкой:

Commands could not invoke on target framework 'netcoreapp1.1'.
Commands on ASP.NET Core and .NET Core projects currently only support .NET Core ('netcoreapp1.0') or .NET Framework (e.g. 'net451') target frameworks.

project.json небольшого консольного приложения для тестирования

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.1.0-preview1-*"
    },
    "Microsoft.EntityFrameworkCore": "1.1.0-preview1-final",
    "Microsoft.EntityFrameworkCore.Design": "1.1.0-preview1-final"
  },

  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview3-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": "dnxcore50"
    }
  }
}

Я использую Visual Studio 2015. Я что-то упустил или EF/.net Core 1.1 сейчас не поддерживается инструментами Visual Studio?

В EF/.net 1.0 он уже не распознает команды Add-Migration или dotnet-ef, поэтому, чтобы заставить их работать, мне нужно вручную инициализировать инструменты EF, как описано здесь: https://stackoverflow.com/a/37876143/3506081

Я также пытался использовать Microsoft.EntityFrameworkCore.Tools.DotNet, как это предлагается в сообщение о выпуске, но имеет ту же проблему, что не распознает dotnet-ef.

У кого-нибудь есть похожие проблемы?

  • Это было исправлено в PR #17 и должно быть включено в выпуск preview4. . bricelam 08.11.2016

entity-framework-core

Ответы

Ответ 1 · рейтинг 2 · m4design

Я узнал, что вы можете сделать это с помощью командной строки, а не в консоли диспетчера пакетов Visual Studio (странно, не знаю почему). Имейте в виду, что команды не совсем одинаковы, поэтому, например, для создания миграции вы должны сделать это следующим образом:

dotnet ef migrations add InitialMigration

Я также использую:

"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final"

и удалил старые инструменты.

Я полагаю, что инструментарий еще не был обновлен для работы с Entity Framework Core 1.1 Preview 1. Итак, в качестве обходного пути я изменил версию фреймворка на netcoreapp1.0, выполняя любые команды, которые я хочу запускать. базу данных, а затем вернуться к последней целевой платформе. забастовка>

Ответ 2 · joacar

Эта поток проливает некоторый свет на эту ситуацию.

Инструмент зависит от определенной версии MSBuild, поэтому убедитесь, что версия инструмента имеет ту же версию. У меня он работает на Mac OSX Sierra

.csproj

    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet">
      <Version>1.0.0-msbuild1-final</Version>
    </DotNetCliToolReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet">
      <Version>1.0.0-msbuild1-final</Version>
    </PackageReference>
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools">
      <Version>1.0.0-msbuild1-final</Version>
    </PackageReference>

После изменения .csproj обязательно запустите dotnet clean && dotnet restore. В случае неудачи попробуйте rm -rf obj/

Также

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы