在发布时应用EF迁移仅适用于某些Web项目

时间:2016-12-22 20:23:12

标签: visual-studio-2015 asp.net-core publish entity-framework-core ef-migrations

我使用Asp.Net Core 1.0和Entity Framework Core 1.1.0获得了几个项目

我有代码优先迁移方法,我通过Visual Studio 2015发布到Azure。

我以前在Azure Sql Server中应用迁移的方法是在发布上启用复选框:"实体框架迁移 - 在发布时应用此迁移",我在其中输入连接字符串。

我更新了几个软件包,现在对于我的一个项目,我还没有看到这个选项,以便在发布时应用迁移。我可以看到它试图发现数据上下文但它找不到任何东西(虽然它在同一个项目中......)

见下文:

  • 我可以在发布时在Azure上应用迁移的项目: apply migrations available

  • 在发布时在Azure上应用迁移的选项的项目: apply migrations not available

我怀疑它与项目的某些依赖版本有关,而与我的IDE无关,因为我对两个项目使用相同的Visual Studio(2015更新3)。

我无法找到有关此信息。什么依赖允许这个选项?如果我发现哪个版本存在问题,那么剩下的问题是如何在发布时应用迁移?

两个项目都在Web项目中进行迁移,两个项目都使用"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0"

更新1 :我设法找到了相关内容。似乎如果我使用这些依赖项:

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final"

Visual Studio能够查找数据上下文,并提供在发布时应用迁移的选项。但是,如果我使用这些依赖项的较新版本,如:

"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
"Microsoft.EntityFrameworkCore.Design": "1.1.0"

然后,应用迁移的选项就消失了,VS在发布时找不到任何数据上下文。

我需要了解迁移事件和Asp.Net Core的最新状态。

2 个答案:

答案 0 :(得分:2)

在创建空的ASP.NET Core Web API项目并添加迁移后,我在Visual Studio 2017中发现了一个非常类似的问题(发布无法在项目中查找要发布的数据上下文)。

为了使其工作,我在.csproj文件中包含以下行:

{{1}}

答案 1 :(得分:0)

要使用迁移,您可以使用程序包管理器控制台(PMC)或命令行界面(CLI) 使用PMC时,在发布期间不会发现EF迁移。 通过使用CLI,将显示EF迁移部分。