【问题标题】:Deploying Multiple WebJobs from the Same Project in a Azure DevOps Release Definition?在 Azure DevOps 发布定义中从同一个项目部署多个 WebJobs?
【发布时间】:2019-11-24 17:45:36
【问题描述】:

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

我想知道是否有任何方法可以通过 Azure DevOps 中的构建/发布定义来执行此操作,而无需将多个 Web 作业拆分为单独的项目。这些多个 webjobs 也都存在于同一个应用服务中。

【问题讨论】:

    标签: azure-devops azure-web-app-service azure-pipelines azure-pipelines-release-pipeline azure-pipelines-build-task


    【解决方案1】:

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

    我们配置了一种手动方式来释放这些多个网络作业 使用 run.cmd 文件并将相关的 run.cmd 文件复制到 根文件夹取决于我们要发布的网络作业。

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

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

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

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

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

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

    【讨论】:

    • 所以我会将每个 webjob 捆绑到一个 zip 文件中以部署在发布定义中?
    • @Michelle 不,您不必这样做。您也可以选择文件夹。还可以在这里查看类似的答案:stackoverflow.com/a/47710965/5391065
    • 好的,我已经在您的帮助下创建了一个成功的构建/发布系统!谢谢!我也希望能更多地了解这里的幕后情况。据我所知,wejobs 基本上是存在于 app_data/jobs/{triggered/continuous} 路径下的任何文件夹。那是对的吗?考虑到这一点,可以仅使用一个应用服务部署来部署多个 Web 作业。但是,我认为这不是一个好习惯吗?您能否指出一些有关幕后发生的事情/良好做法的文档?谢谢!!
    • 嗨@Michelle 是的,仅适用于网络作业。只需创建一个目录并在其中创建文件夹结构 App_Data/jobs/continuous/ 。将您的网络作业内容复制到您在上面创建的文件夹结构中。关于这个概念,您可以查看 Ajay Kumar Yadav [MSFT] 在这个问题中的回答。 developercommunity.visualstudio.com/solutions/295671/view.html 仅使用一个应用服务部署即可部署多个 Web 作业。为了获得良好的实践,最好让 webjob 与每个项目相对应,就像 Marina Liu - MSFT 在我之前的评论中回复的结构一样。
    • 嗨帕特里克!实际上,现在还有另一个问题,我刚刚能够回到过去。使用自动发布后,手动发布脚本不再起作用。它遇到的错误是:“在远程计算机上处​​理请求时发生错误。C:\Program Files\dotnet\sdk\2.1.507\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0 \PublishTargets\Microsoft.NET.Sd k.Publish.MSDeploy.targets(139,5): 错误:在“D:\home\site\wwwroot”上处理“创建目录”操作时遇到错误
    猜你喜欢
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2019-12-30
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    相关资源
    最近更新 更多