我有一个entity framework core
类库
在project.json
中,我之前添加了
"buildOptions": {
"emitEntryPoint": true,
"copyToOutput": {
"include": [ "appsettings.json" ]
}
},
因为我需要在类库上运行迁移,所以我不得不调整project.json
以使其工作(1.0.0
),因为ef core不支持在类库上运行迁移。链接
这一切都在我的项目过去工作,但突然今天我得到以下错误,当我想添加一个新的迁移
Add-Migration MyNewMigration
得到
Could not find assembly '.binMySolutionbinDebugnet452win7-x64MyEFProject.dll'.
当我查看该目录时,它创建了一个exe
而不是dll
,我认为是因为"emitEntryPoint": true,
当我编译时,所以它不应该给我一个丢失dll的错误。我必须添加这个,因为这是已知的问题,以使EF迁移与类库一起工作
我记得唯一的改变是从1.0.0
移动到Entity Framework Core 1.0.1
并更新到Visual Studio 2015 Update 3
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
我将其设置回"1.0.0"
并重建项目,但我仍然得到相同的错误
为什么它以前工作,现在不工作了?
我将emitEntryPoint
设置为重新编译的false
,它创建了一个dll
。
之后运行迁移时,我得到了错误拒绝访问路径"C:Code..ClassLibraryProjectMigrationsMyDbContextModelSnapshot.cs"。
我必须给Users
修改这个文件的权利来解决这个问题。
之后Add_Migrations
命令创建迁移,Update-Database
命令更新数据库