首页 > 解决方案 > 在 Azure DevOps 发布定义中从同一个项目部署多个 WebJobs?

问题描述

因此,我们构建代码的方式是,我们的解决方案中有多个项目,每个项目都有多个 Web 作业。我们已经配置了一种手动方式,使用 run.cmd 文件发布这些多个 webjobs,并将相关的 run.cmd 文件复制到根文件夹,具体取决于我们要发布的 webjob。

我想知道是否有任何方法可以通过 Azure DevOps 中的构建/发布定义来做到这一点,而不必将多个 webjob 拆分为单个项目。这些多个 Web 作业也都存在于同一个应用服务中。

标签: azure-devopsazure-web-app-serviceazure-pipelinesazure-pipelines-release-pipelineazure-pipelines-build-task

解决方案


您所做的是目前最简单的方法,您可以在 Azure DevOps Build/Release Pipeline 中克隆该过程。在 Azure DevOps 中没有任何方法可以做到这一点,而不必将多个 Web 作业拆分为单独的项目。

我们已经配置了一种手动方式,使用 run.cmd 文件发布这些多个 webjobs,并将相关的 run.cmd 文件复制到根文件夹,具体取决于我们要发布的 webjob。

例如,在您的构建解决方案步骤中定义(添加一些复制文件步骤以复制必要的文件):-

  1. Visual Studio Build(解决方案:***.sln,MSBuild 参数:/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\")

  2. 发布构建工件(发布路径:$(build.artifactstagingdirectory);工件名称:drop;工件类型:服务器)

为此构建定义创建发布定义并添加任务

  1. Azure 应用服务部署
  2. 选择您的 Azure 订阅和应用服务名称;
  3. 选择您的包或文件夹:$(System.DefaultWorkingDirectory)**\WebJob1.zip

您可以类似地为 WebJob2.zip 创建另一个 Azure 应用服务部署任务,并通过单个构建和发布管道部署任意数量的 Web 作业。


推荐阅读