Skip to content
Thomas F. Abraham edited this page Nov 6, 2017 · 1 revision
  • Upgrade and now your bindings file won't import correctly? It's probably because we added new XPath queries to the Deployment Framework's AdapterXPaths.txt (Framework\DeployTools folder). Each XPath represents a nested XML fragment in your bindings XML file. When we run ElementTunnel.exe (controlled by ApplyXmlEscape property) during deployment, it encodes the XML fragment at each XPath location in order. In your bindings file, if one of those fragments is already encoded, then it will end up being encoded again, resulting in a bad bindings file. You'll want to un-encode the XML at any of those locations in your PortBindingsMaster.xml.
  • Not seeing the "Tools/Deployment Framework for BizTalk" menu item in Visual Studio? Go to "Tools/Add-in Manager" and ensure that the add-in is enabled.
  • The property <DefaultInstallDir>, found in the .btdfproj file and used to set the default install path that appears in a server deploy MSI, is now optional. It's best to remove it unless you need to override the default path. If you do want to keep your override, the format has changed slightly -- [ProgramFilesFolder] should be changed to %ProgramFiles%.
  • The Local Development environment settings are now used by default for local development (Visual Studio) deployments instead of Shared Development. <DeveloperPreProcessSettings> is now set by default to use local_settings.xml, which corresponds to the Local Development column in SettingsFileGenerator.xml. This is used for developer deployments from Visual Studio. Previously this property was not set by default, and the file DEVL_settings.xml was used by default for developer deployments.
  • Settings values in SettingsFileGenerator.xml of "'false" (explict word false) are now handled correctly thanks to an upgraded version of XmlPreprocess.exe. Previously, values of "'false" were interpreted by XmlPreprocess as undefining the setting, rather than exporting the literal word "false". Now, if you put the value "'false" into one of your settings, you will get "false" in your exported setting file.
  • In order to use the BTDF SSO Resolver with BizTalk 2010 and ESB Toolkit 2.1, you need to explicitly install the designer extension. You'll find a shortcut to do so under Start/Programs/Deployment Framework for BizTalk 5.0.

Possible Breaking Change in version 5.0.12 (Old Preview Release)

If you override these properties in your .btdfproj file, you will need to convert your custom settings to a new XML structure:

  • <Orchestrations>
  • <Schemas>
  • <Transforms>
  • <Components>
  • <Pipelines>
  • <PipelineComponents>
  • <CustomFunctoids>
  • <BamDefinitions>
  • <AppsToReference>
  • <AdditionalAssemblies>
  • <ExternalAssemblies>
  • <FilesToXmlPreprocess>
  • <UseCustomDirs>
  • <RuleVocabulary>
  • <RulePolicy>
  • <RulePolicyName>
  • <PropsFromEnvSettings>
  • <BizTalkHosts>

These settings have been converted from MSBuild properties to MSBuild items (PropertyGroup to ItemGroup). Please see issue #6134 and issue #6084 for detailed information about the changes.

Convert old BRE syntax to new BRE syntax

The Deployment Framework's original BRE support used several properties inside a <PropertyGroup>. The new syntax eliminates the properties and instead uses one or more <ItemGroup>'s, which should be placed after all <PropertyGroup> blocks and before the <Import> element.

Old:

<PropertyGroup>
  ...
  <RuleVocabulary>..\BRE\Vocab\My.RuleVocabulary.xml</RuleVocabulary>
  <RulePolicy>..\BRE\Policy\My.RulePolicy.xml</RulePolicy>
  <RulePolicyName>MyPolicyName</RulePolicyName>
  ...
</PropertyGroup>

New:

<ItemGroup>
  <RuleVocabularies Include="My.RuleVocabulary.xml">
    <LocationPath>..\BRE\Vocab</LocationPath>
  </RuleVocabularies>
</ItemGroup>
<ItemGroup>
  <RulePolicies Include="My.RulePolicy.xml">
    <LocationPath>..\BRE\Policy</LocationPath>
  </RulePolicies>
</ItemGroup>
<!-- Do not specify rule policy name. It is automatically extracted from the XML file. -->

Convert old file-list property syntax to new item syntax

This affects properties that contained lists of file names without extensions, like <Schemas> and <Orchestrations>. The Deployment Framework formerly defined file lists as properties containing comma-separated file names without extensions. The new syntax eliminates the properties and instead uses <ItemGroup>'s, which should be placed after all <PropertyGroup> blocks and before the <Import> element.

Old:

<PropertyGroup>
  ...
  <Schemas>MyCustomSchemas,MyCommonSchemas</Schemas>
  ...
</PropertyGroup>

New:

<ItemGroup>
  <Schemas Include="MyCustomSchemas.dll">
    <!-- You must add the correct path to the DLL -->
    <LocationPath>..\MyCustomSchemas\bin\$(Configuration)</LocationPath>
  </Schemas>
  <Schemas Include="MyCommonSchemas.dll">
    <!-- You must add the correct path to the DLL -->
    <LocationPath>..\MyCustomSchemas\bin\$(Configuration)</LocationPath>
  </Schemas>
</ItemGroup>

Convert old name-list property syntax to new item syntax

This affects <BizTalkHosts>, <PropsFromEnvSettings> and <AppsToReference>. The Deployment Framework formerly defined name lists as properties containing comma-separated names. The new syntax eliminates the properties and instead uses <ItemGroup>'s, which should be placed after all <PropertyGroup> blocks and before the <Import> element.

Old:

<PropertyGroup>
  ...
  <AppsToReference>AnotherBizTalkApp,OneMoreBizTalkApp</RuleVocabulary>
  ...
</PropertyGroup>

New:

<ItemGroup>
  <AppsToReference Include="AnotherBizTalkApp" />
  <AppsToReference Include="OneMoreBizTalkApp" />
</ItemGroup>

Or, this syntax is also acceptable:

<ItemGroup>
  <AppsToReference Include="AnotherBizTalkApp;OneMoreBizTalkApp" />
</ItemGroup>