在自包含的应用程序中运行迁移

时间:2016-11-24 22:36:43

标签: c# asp.net-core self-contained

我创建了一个包含dotnet的自包含应用程序:

dotnet publish -c release

部署包包含.net核心运行时本身 - 所以如果有人想使用app - 不需要单独安装.net核心运行时。

但我的问题是......是否可以将dotnet.exe附加到部署包?

F.e。 - 我的网络应用程序预计已迁移的数据库:

dotnet ef database update

此命令无法从自包含的应用程序运行(无法直接访问dotnet.exe)。

这种情况下的情景是什么?我应该怎么处理?

1 个答案:

答案 0 :(得分:2)

解决方案是将它添加到您的Startup.cs

public void Configure(
    IApplicationBuilder app,
    // ... various other parameters that you may have and below add the context that you want to run Migrations
    YourDbContext db1)
{
{
    // run the migrations before other code
    db1.Database.Migrate();
    // ...
}

PS。这有点奇怪,但是你将它作为一个额外的参数添加到Configure方法签名上并且它可以工作(我猜它会自动实例化dbContext对象并调用方法)。它对我有用。