Я пытаюсь выполнить начальную миграцию после добавления Entity Framework 7
в проект Asp.Net 5. Я следую за этим documentation.Текущая целевая среда выполнения не совместима с проектом
В моих project.json
я указал:
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnxcore50": { }
}
Я пытающийся выполнить следующую команду в каталоге проекта с помощью командной строки:
dnx ef migrations add MyFirstMigration
Но я получаю следующее сообщение об ошибке:
System.InvalidOperationException: The current runtime target framework is not compatible with ProjectName. The current runtime target framework: 'DNX, Version=v 4.5.1(dnx451) Please make sure the runtime matches a framework specified in project.json.
Странно, что мой project.json
определенно нацелен на dnxcore50
. Я также проверил в global.json
:
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-beta8",
"architecture": "x86",
"runtime": "coreclr"
}
}
И мой пакет зависимостей Все ссылки beta8:
"dependencies": {
"EntityFramework.Commands": "7.0.0-beta8",
"EntityFramework.Core": "7.0.0-beta8",
"EntityFramework.SqlServer": "7.0.0-beta8",
"Hl7.Fhir.DSTU2": "0.90.2",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta8",
"Microsoft.AspNet.Authentication.OpenIdConnect": "1.0.0-beta8",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta8",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-beta8",
"Microsoft.AspNet.Mvc": "6.0.0-beta8",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta8",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-beta8",
"Microsoft.AspNet.StaticFiles": "1.0.0-beta8",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-beta8",
"Microsoft.Dnx.Runtime": "1.0.0-beta8",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
"Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta8",
"Microsoft.Framework.Logging": "1.0.0-beta8",
"Microsoft.Framework.Logging.Console": "1.0.0-beta8",
"Microsoft.Framework.Logging.Debug": "1.0.0-beta8",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta8"
}
Я не понимаю, почему он сейчас работает. Я уже указал 'dnxcore50' в фреймворках в файле' project.json'. Я запускал 'dnvm install latest -r coreclr', и теперь он работает. Но почему? Команда заявила, что у меня уже установлена новейшая среда CLR. –
Установка coreclr делает 2 вещи. Установите И используйте. Я обновил выше, чтобы это было ясно. В будущем запустите 'dnvm list', чтобы узнать, какую рабочую среду вы используете. По умолчанию выбрана версия «CLR», а не «CoreCLR», – natemcmaster