如何在团队服务部署任务中的控制台应用程序中运行数据库迁移?

时间:2017-02-16 21:58:07

标签: c# sql-server asp.net-core azure-devops

我希望将ASP.NET Core应用程序移动到Visual Studio Team Services中,以实现持续集成和持续部署。我的应用程序目前已经构建和部署"手动":

  1. 建立"发布"到Visual Studio中的Web Deploy包。
  2. 通过在目标服务器上运行控制台应用程序(在步骤1中与te web app一起构建)来应用数据库迁移(使用Simple.Migrations实现)。
  3. 在目标服务器上使用Web Deploy部署构建的Web应用程序。
  4. 现在我想使用Visual Studio Team Services自动执行此过程。构建Web应用程序(步骤1)并将其部署到Azure App Service(步骤3)似乎非常简单。但我不确定如何应用我的Simple.Migrations数据库迁移(步骤2)。是否可以在部署阶段运行控制台应用程序(在构建阶段与Web应用程序一起构建)?运行命令行脚本的任务肯定存在,但我不确定你可以用它实际做什么。

    请注意,我想使用托管代理(如果这有任何区别)。

1 个答案:

答案 0 :(得分:1)

有一个名为Deploy: PowerShell on Target Machines的内置任务。此任务使用Windows远程管理(WinRM)访问本地物理计算机或已加入域或加入工作组的虚拟计算机。此任务可以运行PowerShell脚本和PowerShell-DSC脚本。

不确定是否可以将控制台应用程序代码放在ps脚本中或直接Run a C# .cs file from a Powershell Script。另一种方法是使用PowerShell运行数据库迁移。供您参考的示例:Use PowerShell to Migrate SQL Server Instances (db, logins, jobs, etc)