entity-framework - Entity Framework 迁移Azure DevOps发布管道

标签 entity-framework azure-devops azure-pipelines entity-framework-migrations azure-pipelines-release-pipeline

我正在尝试在Azure DevOps发布管道上运行迁移。因为我想在每个发行版上自动运行数据库脚本。我的发布管道没有源代码,我只有编译的DLL。

当我在本地计算机上执行此命令时,它成功运行。如何转换此命令,以便可以将其与DLL一起使用。
dotnet ef database update --project MyEntityFrameworkProject --context MyDbContext --startup-project MyStartupProject

最佳答案

如果您不想在工件中包含源代码,则可以使用以下脚本:

set rootDir=$(System.DefaultWorkingDirectory)\WebApp\drop\WebApp.Web
set efPath=C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.tools\2.1.1\tools\netcoreapp2.0\any\ef.dll
dotnet exec --depsfile "%rootDir%\WebApp.deps.json" --additionalprobingpath %USERPROFILE%\.nuget\packages --additionalprobingpath "C:\Program Files\dotnet\sdk\NuGetFallbackFolder" --runtimeconfig "%rootDir%\WebApp.runtimeconfig.json" "%efpath%" database update --verbose --prefix-output --assembly "%rootDir%\AssemblyContainingDbContext.dll" --startup-assembly "%rootDir%\AssemblyContainingStartup.dll" --working-dir "%rootDir%"

事实证明,您可以像下面的示例一样使用未记录的dotnet exec命令(假设Web应用程序称为WebApp):

请注意,必须将此运行命令行任务的工作目录(隐藏在“高级”下)设置为工件所在的位置(上述rootDir)。

另一个选项是安装Build & Release Tools扩展并使用“从DLL部署 Entity Framework 核心迁移”任务。

您可以阅读更多信息hereherehere

关于entity-framework - Entity Framework 迁移Azure DevOps发布管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58390703/

相关文章:

c# - Entity Framework 5 日志数据库在运行时发生变化

azure-devops - 在 Visual Studio Team Services 中可以免费拥有的项目数量是否有限制?

azure-devops - .nu​​spec 文件中的 Azure DevOps 管道变量

Azure DevOps管道错误: No builds currently exist in the pipeline definition supplied

entity-framework - Entity Framework 。查看返回重复记录

asp.net-mvc - ASP.NET MVC3 和 Entity Framework 代码优先架构

C# 按实体类型自动创建存储库

c# - WebTestRequest.ReportingName 在使用 VS 团队服务时被忽略

azure-devops - VSO vNext 多个构建,不同的构建工件

Azure 开发运营 : Pipeline for all branches but master