And*_*ski 3 entity-framework entity-framework-core asp.net-core
使用本教程将现有项目更新到ASP.NET Core 1.1和Entity Framework Core 1.1之后,
我尝试在Package Management Console中执行"Add-Migration MigrationName"但出现错误:
启动项目'src\ProjectName'是Visual Studio 2015的ASP.NET Core或.NET Core项目.此版本的Entity Framework核心包管理器控制台工具不支持这些类型的项目.
我正在使用VS 2015 Update 3.
Project.json
{
"dependencies": {
"CoursesManagement.DAL": "1.0.0-*",
"Microsoft.AspNetCore.Diagnostics": "1.1.1",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.1",
"Microsoft.AspNetCore.Mvc": "1.1.2",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.1",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.1",
"Microsoft.AspNetCore.StaticFiles": "1.1.1",
"Microsoft.Extensions.Configuration.FileExtensions": "1.1.1",
"Microsoft.Extensions.Configuration.Json": "1.1.1",
"Microsoft.Extensions.Logging.Console": "1.1.1",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.1",
"Microsoft.NETCore.App": "1.1.1",
"Microsoft.EntityFrameworkCore": "1.1.1",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.1.0",
"type": "build"
},
"Microsoft.EntityFrameworkCore.Design": "1.1.1"
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
},
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"runtimes": {
"win10-x64": {}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
Run Code Online (Sandbox Code Playgroud)
global.json
{
"projects": [ "src" ],
"sdk": {
"version": "1.0.0-preview2-003131"
}
}
Run Code Online (Sandbox Code Playgroud)
根据官方ASP.NET核心团队公告(参见GitHub),该Microsoft.EntityFrameworkCore.Tools软件包被拆分为Microsoft.EntityFrameworkCore.Tools和Microsoft.EntityFrameworkCore.Tools.DotNet.
如果要继续使用dotnet ef命令,则需要引用后一个.如果你只是想使用旧的PowerShell命令风格(Database-Update,Add-Migration,等),老包就足够了.
在引用时Microsoft.EntityFrameworkCore.Tools.DotNet``there is no need to also reference ``Microsoft.EntityFrameworkCore.Tools.
如果您使用的是ASP.NET Core,则需要更新project.json的tools部分以使用新的Microsoft.EntityFrameworkCore.Tools.DotNet包(而不是Microsoft.EntityFrameworkCore.Tools包).
Run Code Online (Sandbox Code Playgroud)"tools": { "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final" },随着.NET CLI Tools的设计不断发展,我们有必要将dotnet ef工具分离到这个单独的包中.Microsoft.EntityFrameworkCore.Tools仍用于Package Manager控制台命令.
现在EF Core发布了它当然应该是
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"
},
Run Code Online (Sandbox Code Playgroud)
另请注意,这些工具不与EF本身共享版本.Tools.DotNet的最新版本工具仍然是1.0.0(参见Nuget)和工具的1.1.0(再次参见Nuget).
正如本博客所述,
我们现在鼓励大家从project.json迁移到MSBuild和csproj.如上所述,我们不会支持Visual Studio 2015中的任何新.NET Core工具.我们也不会更新基于Visual Studio 2015 project.json的工具.
您正在使用不支持project.json的EFCore.Tools软件包版本1.1.0.project.json的工具从未到达RTM.适用于EF Core 1.1软件包的预览版本是EFCore.Tools 1.1.0-preview4-final.
另外如其他答案所述,如果你想使用powershell命令,那么你需要安装EFCore.Tools包,但如果你想要,dotnet ef那么你需要安装EFCore.Tools.DotNet(版本1.1.0-preview3-final因为preview4-final有小问题).
如上所述,基于project.json的工具不会有任何更新.您仍然可以使用上面的预览包,但最好的选择是尽可能迁移到VS2017 csproj.
| 归档时间: |
|
| 查看次数: |
6513 次 |
| 最近记录: |