我的项目曾经在 .NET Core 1.0 上完美运行,但迁移到 1.1 让我头疼了好几天! 我一直在使用 Microsoft Azure 进行发布,并且没有遇到太多问题。
我想我只剩下数据库迁移了。 我已经使用迁移有一段时间了,但是当我发布时,我没有选择“在发布时应用此迁移”。
我有第二个项目,运行得很好。 当我打开发布屏幕时,一个图标会旋转,显示“发现数据上下文...”,然后更改为“实体框架迁移”。
但是对于我的生活来说,我无法让它与我的主要项目一起工作!!
什么可能会阻止发布时出现“实体框架迁移”?
我已经完成了add-migration Init和update-database,这些在本地工作得很好,但在尝试发布时却不行
我的ApplicationDbContext.cs只是默认值,可以与其他项目一起使用。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options){
}
dotnet --信息
.NET Command Line Tools (1.0.0-preview2-1-003177)
当我在本地运行时,我可以删除 SQL 数据库,迁移会在我启动时将其放回原处。 所以我知道迁移工作正常。 我只是无法选择在发布期间显示。
谢谢!!
我也遇到了同样的问题。不幸的是我还没有答案。
我没有具体的答案,但我知道这是 vs2017 RC 的一个已知问题:https://github.com/aspnet/Tooling/blob/master/known-issues-vs2017.md#migrations -发布期间未应用
它说要手动应用这些迁移,但由于我使用的是新的项目类型,因此我无法访问
dotnet ef
命令行工具。
如果您的项目有可用的命令行工具(您仍在使用project.json等),那么我相信有一个
-script
选项允许您输出迁移脚本,然后您可以在服务器上手动运行。
我在 efcore github 上提出了一个问题:https://github.com/aspnet/EntityFramework/issues/7276
我刚刚遇到这个问题,“发现数据上下文...”旋转器运行了一段时间,然后我根本没有得到“实体框架迁移”选项。 为我解决的问题是重新创建发布配置文件,如下所示: 在“发布”屏幕中按“创建新个人资料”链接:
完成此操作后,“实体框架迁移”部分将按预期显示在发布工具的设置中。
仅供参考,重新创建发布文件似乎并未对 .pubmxl 文件进行任何重大更改。 唯一的变化是 resourcegroups
设置中的
resourceGroups
更改为
<ResourceId>
,以及 <PublishFramework />
更改为 <PublishFramework></PublishFramework>
。 这些似乎都不是问题的原因。我遇到了类似的问题,并通过将发布方法从 ZipDeploy
来修复它。但我仍然不知道是什么原因导致了这个问题。