Skip to main content

BizTalk Deployment Framework fix for compatibility issues with BizTalk 2016

My objective was to modify BizTalk Deployment framework source, with the intend of getting it to work with BizTalk 2016, as it does not work out of the box with BizTalk 2016.

Source Location
BizTalk Deployment Framework source is located at CodePlex and downloaded from below link
It has BTDF 6.0 under dev folder and BTDF 5.0- 5.6 under release folder.
BTDF 5.6 release version is more suited, as it is a stable release, hence it is modified to suit our need. All the references going forth are from the 5.6 release folder.

Below is the modification that were done in order to get BTDF 5.6 release version, working.
   1.    Added copy of BizTalk 2016 SSOClient to \Tools\SSOSettingsFileImport\ExternalReferences\BTS2016\Microsoft.BizTalk.Interop.SSOClient.dll, we will use as reference later.
   2.    In solution, \Tools\SSOSettingsFileImport\SSOSettingsFileImport.sln clone projects SSOSettingsEditorBTS2013R2, SSOSettingsFileImportBTS2013R2 and  SSOSettingsFileReaderBTS2013R2 projects, rename then as BTS2016 as shown below,
a.    SSOSettingsEditorBTS2016
b.    SSOSettingsFileImportBTS2016
c.    SSOSettingsFileReaderBTS2016
For the above projects change target .net framework to 4.6, add reference to SSOClient.dll and in post build make appropriate changes
  3.    In solution, \Installer\BizTalkDeploymentFrameworkInstaller.sln, change RuntimeComponents.wxi by adding reference to BizTalk 2016 and added step to GAC SSOFileReader dll, apart from being coped to installation folder, for reference your reference the file @ link,
  4.    In wix file located at Developer\GenericBizTalkMSI.wxs, add reference to BizTalk 2016, for your reference check file @ link,
The resulting MSI after the fix is loaded @ link

Developer Scripts
As BTDF Visual Studio add-in is not compatible with Visual Studio 2015, use below command to execute the reqired task instead,
Note: There are two set of command but the variation is for configuration variation of the project

Quick Deploy
MSBuild.exe <btdfproj file path> /nologo  /p:Configuration=Debug /t:UpdateOrchestration
MSBuild.exe <btdfproj file path> /nologo  /p:Configuration=Release /t:UpdateOrchestration

Update SSO
MSBuild.exe <btdfproj file path> /nologo  /p:Configuration=Debug /t:DeploySSO
MSBuild.exe <btdfproj file path> /nologo /p:Configuration=Release /t:DeploySSO

Preprocess Bindings
MSBuild.exe <btdfproj file path> /nologo /p:Configuration=Debug /t:PreprocessBindings
MSBuild.exe <btdfproj file path> /nologo /p:Configuration=Release /t:PreprocessBindings

Bounce BizTalk
MSBuild.exe <btdfproj file path> /nologo /t:BounceBizTalk

Import Bindings
MSBuild.exe <btdfproj file path> /nologo /t:ImportBindings /p:Configuration=Debug
MSBuild.exe <btdfproj file path> /nologo /t:ImportBindings /p:Configuration=Release

Export Settings
MSBuild.exe <btdfproj file path> /nologo /t:ExportSettings /p:Configuration=Debug
MSBuild.exe <btdfproj file path> /nologo /t:ExportSettings /p:Configuration=Release

Undeploy Rules
MSBuild.exe <btdfproj file path> /nologo /t:UndeployVocabAndRules /p:Configuration=Debug;RemoveRulePoliciesFromAppOnUndeploy=true
MSBuild.exe <btdfproj file path> /nologo /t:UndeployVocabAndRules /p:Configuration=Release;RemoveRulePoliciesFromAppOnUndeploy=true

Deploy Rules
MSBuild.exe <btdfproj file path> /nologo /t:DeployVocabAndRules /p:Configuration=Debug;ExplicitlyDeployRulePoliciesOnDeploy=true
MSBuild.exe <btdfproj file path> /nologo /t:DeployVocabAndRules /p:Configuration=Release;ExplicitlyDeployRulePoliciesOnDeploy=true

MSBuild.exe <btdfproj file path> /nologo /t:Deploy /p:Configuration=Debug
MSBuild.exe <btdfproj file path> /nologo /t:Deploy /p:Configuration=Release

MSBuild.exe <btdfproj file path> /nologo /t:Undeploy /p:Configuration=Debug
MSBuild.exe <btdfproj file path> /nologo /t:Undeploy /p:Configuration=Release

Build MSI
MSBuild.exe <btdfproj file path> /nologo /p:Configuration=Debug /t:Installer
MSBuild.exe <btdfproj file path> /nologo /p:Configuration=Release /t:Installer


Popular posts from this blog

BizTalk 2020 Unboxing - Part 1

Today I got my hands on BizTalk 2020 installable and I deployed it on a SQL Server 2019 Developer  image in Azure. Following is run down of apparent difference you will see when you are going through process of installing and deploying BizTalk 2020. Installation: While Installing first thing I noted was that now we have "BizTalk TMS" feature, this was part of feature pack 3, now it is part of main installation. Every other instillation is same Enterprise Adapter, ESB ToolKit and HL7 Accelerator. I did not check other accelerators. Configuration: Along with the usual you will have to configure, BizTalk Rest API and BizTalk TMS, BizTalk Rest API was part of feature pack 1 release of BizTalk 2016, here is link to detail of what it exposes. At the end of this post I have attached screen shot of all the exposed operations. BizTalk Admin Console The first thing I check out after installation is new Adapter for us to play with, found new kids on the block, i.e.

Getting user First Name and Last Name from Active Directory

Recently, I had to create a MVC portal for organizing test messages. Since site is personalized for User, we were required to fetch and disply username, when they login. This being intranet site, user is authenticated using Windows Authentication. Windows user names are most of the time are mix of literal, not conveying users First and Last name. I used following code to get User First and Last name, using DirectorySearcher class to query Active Directory. Since user name in HttpContext is in format DomainName\\UserName, I had to extract user name alone and use it filter. using System.DirectoryServices; ... ... DirectorySearcher ds = new DirectorySearcher(); var indexOfBS = User.Identity.Name.IndexOf( "\\" ); ds.Filter = String.Format( "((SAMAccountName={0}))" , User.Identity.Name.Substring(indexOfBS + 1, User.Identity.Name.Length - indexOfBS - 1)); ds.PropertiesToLoad.Add( "givenName" ); ds.PropertiesToLoad.Add( "sn" ); var direc