C# 在自包含的应用程序中运行迁移
我已使用C# 在自包含的应用程序中运行迁移,c#,asp.net-core,self-contained,C#,Asp.net Core,Self Contained,我已使用dotnet创建了一个自包含的应用程序: dotnet publish -c release 部署包包含.net核心运行时本身,因此如果有人想使用应用程序,则不需要单独安装.net核心运行时 但我的问题是。。。是否可以将dotnet.exe附加到部署包 F.e.-我的web应用需要迁移的数据库: dotnet ef database update 无法从自包含的应用程序运行此命令(无法直接访问dotnet.exe) 在这种情况下,情况是什么?我该怎么处理 解决方案是在Startup.
dotnet
创建了一个自包含的应用程序:
dotnet publish -c release
部署包包含.net核心运行时本身,因此如果有人想使用应用程序,则不需要单独安装.net核心运行时
但我的问题是。。。是否可以将dotnet.exe
附加到部署包
F.e.-我的web应用需要迁移的数据库:
dotnet ef database update
无法从自包含的应用程序运行此命令(无法直接访问dotnet.exe
)
在这种情况下,情况是什么?我该怎么处理 解决方案是在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();
// ...
}
这有点奇怪,但是您将它作为一个额外的参数添加到Configure方法签名中,它就可以工作了(我猜它会自动实例化dbContext对象并调用该方法)。这对我很管用。看看这篇文章:在启动时只需在代码中调用
context.Database.MigrateAsync()