【发布时间】:2016-09-26 07:53:48
【问题描述】:
我创建了一个 asp.net core RC2(.NET 4.61 框架)项目。
然后我创建了另一个带有实体框架引用的“DataProvider”nuget 类库(.NET 核心),并将project.json 设置中的framework 更改为"net461":{}。
我没有创建通用 c# 类库的原因是因为它没有 project.json 但我需要它来设置类似的东西:
{
"version": "1.0.0-*",
"dependencies": {
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.Tools": {
"type": "build",
"version": "1.0.0-preview1-final"
}
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": {
"imports": [ "portable-net451+win8" ],
"version": "1.0.0-preview1-final"
}
},
"frameworks": {
"net461": {
"buildOptions": {
"emitEntryPoint": true
}
}
}
}
DataProvider 项目有我的 DbContext 类。
于是我进入命令行进入DataProvider目录并执行:
dotnet ef migrations add Init
然后我得到这个错误:
This preview of Entity Framework tools does not support targeting class library projects in ASP.NET Core and .NET Core applications. See http://go.microsoft.com/fwlink/?LinkId=798221 for details and workarounds.
我不想把我的 DbContext 放到 asp.net core rc2 项目中!!!
我单击该链接以查找有关该解决方法的更多信息,但实际上在找到该链接之前没有任何帮助:
https://github.com/aspnet/EntityFramework.Docs/blob/master/docs/cli/dotnet.rst
以下是由于我之前遇到的此错误而引入的 2 个解决方法:
解决方法 1没有工作(“要使项目成为 .NET Core 应用程序,请将“netcoreapp1.0”框架添加到 project.json使用下面示例中的其他设置:")
这就是我后来更改project.json的方式
{
"frameworks": {
"netcoreapp1.0": {
"imports": [ "portable-net451+win8" ],
"buildOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-*"
},
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.Tools": {
"type": "build",
"version": "1.0.0-preview1-final"
}
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": {
"imports": [ "portable-net451+win8" ],
"version": "1.0.0-preview1-final"
}
}
}
}
}
=> 因为在安装了许多 nuget 并且我重建之后,我还必须添加我添加的 program.cs 等等。然后我在 CMD 上重新运行“dotnet ef migrations add Init”得到这个错误:@987654330 @
解决方法 2没有工作:(“要制作桌面 .NET 应用程序,请确保您的项目目标是“net451”或更高版本(例如“net461”也有效)并确保构建选项“emitEntryPoint”设置为true。”)
=> 因为我得到编译异常,那个 program.cs 没有 Main 方法。
好的,我有一个类库,它从来没有 program.cs ... 然后我添加了带有静态 Main 方法的 program.cs。现在项目编译了,但是当我在 CMD 上重新运行“dotnet ef migrations add Init”时,我得到了和以前一样的错误!!!
我应该怎么做才能使“dotnet ef migrations add Init”的执行工作?
【问题讨论】:
标签: asp.net-core entity-framework-core