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

Я пытаюсь обновить свой проект сетевого ядра до версии 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.

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


person Mats391    schedule 03.11.2016    source источник
comment
Это было исправлено в PR #17 и должно быть включено в выпуск preview4. .   -  person bricelam    schedule 08.11.2016


Ответы (2)


Я узнал, что вы можете сделать это с помощью командной строки, а не в консоли диспетчера пакетов 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, выполняя любые команды, которые я хочу запускать. базу данных, а затем вернуться к последней целевой платформе.

person m4design    schedule 03.11.2016
comment
Это решило это. Ожидал, что инструменты уже будут доступны, просто с каким-то загадочным номером версии, как и все остальное :) - person Mats391; 03.11.2016
comment
На данный момент я просто держу целевую структуру на уровне 1.0, и пока все работает. Попробую использовать командную строку, если у меня возникнут какие-либо проблемы. - person Mats391; 04.11.2016

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

Инструмент зависит от определенной версии 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/

Также

person joacar    schedule 02.12.2016