实体框架核心1.0.1迁移寻找编译的dll而不是exe



我有一个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命令更新数据库

最新更新