Azure DevOps 发布管道以使用 BTDF

问题描述

我们目前正在运行 BizTalk 2013(非 R2)并使用 BTDF 执行我们的所有部署。 虽然我们希望迁移到 BizTalk 2016,但我希望首先迁移到 Azure devops(和 git),我已经开始研究如何使用管道执行这些部署,但发现自己变得有点迷茫,所以只是看看任何人可能有的任何建议/指导。

目前的状态是这样的:

  • 在 devops 中使用最新的 Visual Studio 版本 (2019) 进行 CI 构建
  • 安装在 devops 中的 BizTalk BTDF 部署框架

我已经开始创建一个管道来执行部署,但不确定最好的方法是什么。我已经阅读了几篇文章,似乎有两种不同的方法

我对这两种方法的看法是方法 1 缺少 msi 删除之类的东西,我不确定您将如何区分用于部署的集群的 2 个节点,因此,一直在追求方法 2,因为它似乎提供每个环境所需的完整部署。 我目前遇到的问题是让 MSBuild 正常运行。我将它指向 btdf 项目,但它以 BizTalkDeploymentFramework.targets was not found. 失败。查看 MSBuild 步骤的设置,您可以指定 msbuild 的位置,但问题在于 btdf 目标文件

My MSBuild config

总而言之,我对管道感到有些困惑,因为我似乎没有太多可用的配置,但也许我只是错过了一些东西。 任何建议将不胜感激。

谢谢。

解决方法

这对于 Azure DevOps 来说有点棘手,因为它通常进行无代理部署。您可以通过在 BizTalk 服务器上安装 Azure DevOps 代理来简化设置,但有时由于安全或其他限制而无法做到这一点。 (Octopus Deploy 是一种更灵活、更简单的产品,可用于 BizTalk —— 我认为大多数 —— 部署。)

您需要一个构建过程,首先构建 BizTalk 应用解决方案,然后构建 BTDF MSI。听起来你有那个工作。构建工件应包含 BTDF MSI。

如果 BizTalk 服务器上没有代理,则需要设置和使用 PowerShell 远程处理。脚本 here 是一个很好的资源,但一定要查看评论。如果 BizTalk 服务器上确实有代理,则可以考虑使用 this Azure DevOps 扩展。

除非您使用 BTDF ESB Toolkit 解析器,否则您不需要在 BizTalk 服务器上安装 BTDF。

您的错误似乎表明您缺少某些 MSBuild 参数,或者可能尝试在安装了 BTDF MSI 的实际 BizTalk 服务器以外的服务器上运行 MSBuild。

请务必查看 BTDF 文档中的“通过脚本部署应用程序”主题。