我花了整整两天的时间尝试为我的项目数据库创建初始迁移。这真是太过分了。文档的每个预览版本指向不同的方向,并且有很多未解决的问题在一段时间内飞行。我的项目是一个运行在完整框架(net462)上的AspNetCore应用程序,尽管我想我已经尝试了预览版本的每一个组合,甚至在这个问题上提出的解决方法:EF Tools 1.1.0-preview4 Unrecognized option '--config'或在这个:https://github.com/aspnet/EntityFramework/issues/7083但都不工作。无法使用EF Core 1.1创建迁移
这是我project.json与相关部分的摘要:
{
"version": "1.0.0-*",
"buildOptions": {
"platform": "x86",
"debugType": "full",
"preserveCompilationContext": true,
"emitEntryPoint": true
},
"dependencies": {
....
"Microsoft.EntityFrameworkCore": "1.1.0",
"Microsoft.EntityFrameworkCore.Design": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
....
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final"
},
"frameworks": {
"net462": {
}
},
...
}
在我的情况下所提出的解决方法不起作用,也不使用每晚构建,也没有降级的工具1.0.0- preview3。
如果我使用的工具1.1.0-preview4-最终版本我打这个错误:如果我用的是每晚构建我得到这样一个
Unrecognized option --config
,至极是某种荒谬的,因为我的应用程序只有一个项目,而不是一个DLL(它也有emitEntryPoint:真集)
Could not load assembly 'Sales'. Ensure it is referenced by the startup project 'Sales'
但是,这是我最喜欢的一个,当我降级到的工具,我得到这个1.0.0-preview3决赛超现实主义之一:
error: Package Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0-preview3-final is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.0-preview3-final supports: netcoreapp1.0 (.NETCoreApp,Version=v1.0)
我不得不读五次获得肯定的是,在第二句说的是第一个恰恰相反......这似乎是一个笑话!
此外,命令不工作的PMC了,我安装工具,无论至极的版本,不管我恢复的包,如果我重新启动计算机...
我越来越疯狂有这么多版本的一切,我只想创建一个迁移,这与我必须使用的工具版本无关...现在是否有一个有效的配置,或者我在尝试一些不可变的配置? 有没有人能够在一个asp.net核心应用程序中创建迁移,并将目标设置为完整的.net框架(net462)和任何版本的ef工具?
如果是这样,如何?
编辑:
针对项目.netcoreapp1.0现在去掉不兼容引用我打这个错误后:
A fatal error was encountered. The library 'hostpolicy.dll' required to execute the application was not found in 'C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App\1.0.1'
这里发生了什么???我真的厌倦.net Core,它仍然是第一个版本。在测试版中,我遇到过很多像这样的问题,但现在事情应该是稳定的......它们已经改变了所有可以改变的一切,API,程序集名称,命名空间,程序包名称,约定的二十倍。现在让我们等待预览5,6或25的工具,也许到2035年EF核心将有适当的工具和程序,同时我该死的百万次我决定投注这项技术!
编辑2:
按照意见global.json可能是相关的:
{
"projects": [ "src", "test" ],
"sdk": {
"version": "1.0.0-preview2-1-003177"
}
}
,并添加了1.0.0-preview2-1-003177文件夹存在,并且是唯一一个在C:\ Program Files文件(x86)\ dotnet \ sdk \和C:\ Program Files \ dotnet \ sdk \
有什么问题/例外/错误? – Dmitry
@Dmitry - 是否有足够的错误? – Vi100
是的,没有:)你在项目文件夹中有一些噩梦,需要更多的细节来理解“为什么”。 1)请显示你的'global.json'文件。 2)更改框架后,手动删除'bin'和'obj'子文件夹,重新启动VS并执行'dotnet restore'。一些“奇怪的”问题在我的机器上以这种方式得到了解决:)无论如何,我在EFCore 1.0.0和1.1.0,net46和netstardart1.3以及netcoreapp1.0和1.1(但从未尝试过net462)的许多项目中成功迁移, 。你可以制作一个非工作的小型演示项目并将它推到github上的某个地方吗? – Dmitry