我的项目过去非常适合.NET Core 1.0,但是转向1.1让我感到头痛!我一直在使用 Microsoft Azure 进行发布,并没有遇到太多问题。
我认为我只关注数据库迁移。我一直在使用迁移很长一段时间,但是当我发布时,我没有选择'在发布时应用此迁移'。
我有第二个项目正常运作。当我打开发布屏幕时,图标会旋转,显示“发现数据上下文... ”,然后更改为“实体框架迁移”。
但对于我的生活,我无法让它与我的主要项目合作!!
什么可能阻止“实体框架迁移”在发布时出现?
我已经完成添加迁移初始和更新数据库,并且这些工作在本地完美,但在尝试发布时却没有
我的ApplicationDbContext.cs只是一个默认设置,适用于其他项目。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options){
}
dotnet --info
.NET Command Line Tools (1.0.0-preview2-1-003177)
当我在本地运行时,我可以删除SQL数据库,并在我启动时将其恢复。所以我知道迁移工作正常。我只是无法在发布期间显示该选项。
谢谢!
答案 0 :(得分:2)
我遇到了同样的问题。很遗憾,我还没有 的答案。
我没有具体答案,但我知道这对于vs2017 RC来说已经是一个已知问题:https://github.com/aspnet/Tooling/blob/master/known-issues-vs2017.md#migrations-not-applied-during-publish
它表示要手动应用这些迁移,但由于我使用的是新项目类型,因此我无法访问dotnet ef
命令行工具。
如果您的项目有可用的命令行工具(您还在使用project.json等),那么我相信有一个-script
选项可以让您输出一个脚本迁移,然后您可以在服务器上手动运行。
我在efcore github上提出了一个问题:https://github.com/aspnet/EntityFramework/issues/7276
答案 1 :(得分:1)
我刚刚遇到这个问题,'发现数据上下文......'微调器运行了一段时间,然后我没有得到'实体框架迁移'选择权。
为我修复的是重建发布配置文件,如下所示:
然后切换到Select Existing选项:
然后选择您现有的App Service
完成后,'实体框架迁移'部分在发布工具的设置中按预期显示。
有关信息,重新创建发布文件似乎没有对.pubmxl文件进行任何重大更改。唯一的更改是resourcegroups
在resourceGroups
设置中更改为<ResourceId>
,<PublishFramework />
更改为<PublishFramework></PublishFramework>
。这些似乎都不是导致问题的原因。