azure-pipelinesdevopsbiztalkbtdf

Azure devops release pipeline to deploy BizTalk application using BTDF


We are running BizTalk 2013 (non R2) currently and perform all of our deployments using BTDF. Whilst we are looking to move to BizTalk 2016, there is a desire to move to Azure devops (and git) first and I have started looking into how we might perform these deployments using pipelines, but have found myself becoming a little lost so just looking for any advice/guidance anyone may have.

Current state of play is this:

I have begun creating a pipeline to carry out the deployment, but not exactly sure of the best way to go about it. I have read several articles and there seems to be two distinct approaches:

My thoughts on the two approaches are that approach 1 lacks things like msi removal and I'm unsure how you would differentiate between the 2 nodes of a cluster for deployment and as such, have been pursuing approach 2 as it seems to offer the full deployment required per environment. The issue I'm having at the moment are around getting the MSBuild to function. I'm pointing it at the btdf project, but it fails with BizTalkDeploymentFramework.targets was not found.. Looking at the settings for the MSBuild step you can specify the location of msbuild, but the issue is with the btdf targets file.

My MSBuild config

All in all I'm a bit stumped by the pipelines as there doesn't appear to be much config available to me, but maybe I'm just missing something. Any advice would be gratefully received.

Thanks.


Solution

  • This is a little tricky with Azure DevOps because it typically does agentless deployments. You can simplify the setup by installing Azure DevOps agents on your BizTalk servers, but sometimes that's not possible due to security or other restrictions. (Octopus Deploy is a much more flexible and simpler product to use for BizTalk -- I'd argue most -- deployments.)

    You'll need a build process that first builds the BizTalk app solution and then builds the BTDF MSI. It sounds like you have that working. The build artifact should contain the BTDF MSI.

    If you don't have agents on the BizTalk servers, you'll need to set up and use PowerShell Remoting. The script here is a great resource, but be sure to review the comments. If you do have agents on the BizTalk servers, you can look at using this Azure DevOps extension.

    You do NOT need to install BTDF on the BizTalk servers unless you're using the BTDF ESB Toolkit resolver.

    Your error seems to indicate that you're missing some MSBuild parameters or perhaps attempting to run MSBuild on a server other than the actual BizTalk servers with the BTDF MSI installed.

    Be sure to review the "Deploying an Application via Script" topics in the BTDF docs.