Skip to content

Commit 4294450

Browse files
authored
Add support for BizTalk 2020 and drop BizTalk 2016 (#7)
1 parent ed85460 commit 4294450

20 files changed

Lines changed: 286 additions & 376 deletions

.gitignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,5 @@ __pycache__/
289289

290290
# Deployment Framework for BizTalk
291291
VSIX/
292-
src/AddIn.VS2010/ProjectTemplates/DFBTProject.zip
293-
src/AddIn.VS2013/ProjectTemplates/DFBTProject.zip
294-
src/AddIn.VS2012/ProjectTemplates/DFBTProject.zip
295-
src/AddIn.VS2015/ProjectTemplates/DFBTProject.zip
292+
src/AddIn.VS2019/ProjectTemplates/DFBTProject.zip
296293
src/Addin/ProjectTemplates/DFBTProject.zip

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
### 2.2.0 [Release] (1/20/2026)
2+
3+
* Add support for BizTalk 2020 (#4)
4+
* Drop support for BizTalk 2016 (#6)
5+
16
### 2.1.0 [Release] (1/18/2026)
27

38
* Remove support for BizTalk 2010, 2013 R1 and R2 (#3)
-2 MB
Binary file not shown.

ToolsForVisualStudio.targets

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
Copyright (C) 2008-Present Thomas F. Abraham. All Rights Reserved.
55
Licensed under the MIT License. See License.txt in the project root.
66
-->
7-
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0" DefaultTargets="Build">
7+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0" DefaultTargets="Build">
88
<PropertyGroup>
9-
<VsixVersion>2.1.0.0</VsixVersion>
9+
<VsixVersion>2.2.0.0</VsixVersion>
1010
</PropertyGroup>
1111

1212
<PropertyGroup>
@@ -37,14 +37,14 @@
3737
</Target>
3838

3939
<Target Name="BuildAddin">
40-
<WriteXmlValue XmlFilename="src\Addin.VS2015\source.extension.vsixmanifest" XPath="//ns:Metadata/ns:Identity/@Version" Namespace="http://schemas.microsoft.com/developer/vsx-schema/2011" Value="$(VsixVersion)" />
40+
<WriteXmlValue XmlFilename="src\Addin.VS2019\source.extension.vsixmanifest" XPath="//ns:Metadata/ns:Identity/@Version" Namespace="http://schemas.microsoft.com/developer/vsx-schema/2011" Value="$(VsixVersion)" />
4141

4242
<MSBuild Projects="src\DeploymentFrameworkForBizTalkAddin.sln" Properties="Configuration=Release;Platform=Any CPU" Targets="Rebuild" />
4343
</Target>
4444

4545
<Target Name="CopyAddin">
4646
<ItemGroup>
47-
<VsixFile Include="src\AddIn.VS2015\bin\release\DeploymentFrameworkForBizTalkToolsForVS2015.vsix" />
47+
<VsixFile Include="src\AddIn.VS2019\bin\release\DeploymentFrameworkForBizTalkToolsForVS2019.vsix" />
4848
</ItemGroup>
4949

5050
<RemoveDir Directories="VSIX" />

src/AddIn.ProjectTemplate/DFBT.vstemplate

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<TemplateContent>
1515
</TemplateContent>
1616
<WizardExtension>
17-
<Assembly>DeploymentFxForBizTalkAddin.ProjectWizard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=e748234cd372cc72</Assembly>
17+
<Assembly>DeploymentFxForBizTalkAddin.ProjectWizard, Version=2.2.0.0, Culture=neutral, PublicKeyToken=e748234cd372cc72</Assembly>
1818
<FullClassName>DeploymentFramework.VisualStudioAddIn.ProjectWizard.AddProjectWizard</FullClassName>
1919
</WizardExtension>
2020
</VSTemplate>

src/AddIn.ProjectWizard.Test/DeploymentFrameworkForBizTalkAddin.ProjectWizard.Test.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
44
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
55
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,7 +10,7 @@
1010
<AppDesignerFolder>Properties</AppDesignerFolder>
1111
<RootNamespace>VisualStudioAddIn.ProjectWizard.Test</RootNamespace>
1212
<AssemblyName>DeploymentFxForBizTalkAddin.ProjectWizard.Test</AssemblyName>
13-
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
13+
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
1414
<FileAlignment>512</FileAlignment>
1515
<TargetFrameworkProfile />
1616
</PropertyGroup>

src/AddIn.ProjectWizard/AddProjectWizard.cs

Lines changed: 89 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22
// Copyright (C) 2008-Present Thomas F. Abraham. All Rights Reserved.
33
// Licensed under the MIT License. See License.txt in the project root.
44

5+
using EnvDTE80;
6+
using Microsoft.VisualStudio.Shell;
7+
using Microsoft.VisualStudio.TemplateWizard;
8+
using Microsoft.Win32;
59
using System;
610
using System.Collections.Generic;
11+
using System.ComponentModel;
712
using System.IO;
13+
using System.Reflection;
814
using System.Text;
915
using System.Windows.Forms;
1016
using System.Xml;
11-
using EnvDTE;
12-
using EnvDTE80;
13-
using Microsoft.VisualStudio.TemplateWizard;
14-
using Microsoft.Win32;
15-
using System.Reflection;
16-
using System.ComponentModel;
1717

1818
namespace DeploymentFramework.VisualStudioAddIn.ProjectWizard
1919
{
@@ -39,103 +39,107 @@ public void RunFinished()
3939

4040
public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)
4141
{
42-
DTE2 dte = automationObject as DTE2;
42+
ThreadHelper.JoinableTaskFactory.Run(async delegate {
43+
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
4344

44-
if (dte == null)
45-
{
46-
MessageBox.Show(
47-
"Cannot convert automation object to DTE2.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
48-
return;
49-
}
45+
DTE2 dte = automationObject as DTE2;
5046

51-
if (!dte.Solution.IsOpen)
52-
{
53-
MessageBox.Show(
54-
"Please open your BizTalk solution, then use the Add New Project dialog on the solution to add this project.",
55-
"Error",
56-
MessageBoxButtons.OK,
57-
MessageBoxIcon.Error);
58-
return;
59-
}
47+
if (dte == null)
48+
{
49+
MessageBox.Show(
50+
"Cannot convert automation object to DTE2.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
51+
return;
52+
}
6053

61-
string destinationPath = replacementsDictionary["$destinationdirectory$"];
54+
if (!dte.Solution.IsOpen)
55+
{
56+
MessageBox.Show(
57+
"Please open your BizTalk solution, then use the Add New Project dialog on the solution to add this project.",
58+
"Error",
59+
MessageBoxButtons.OK,
60+
MessageBoxIcon.Error);
61+
return;
62+
}
6263

63-
if (string.IsNullOrEmpty(destinationPath))
64-
{
65-
MessageBox.Show(
66-
"Cannot determine destination directory ($destinationdirectory$ is missing).",
67-
"Error",
68-
MessageBoxButtons.OK,
69-
MessageBoxIcon.Error);
70-
return;
71-
}
64+
string destinationPath = replacementsDictionary["$destinationdirectory$"];
7265

73-
string btdfInstallDir =
74-
(string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\Software\DeploymentFrameworkForBizTalk", "InstallPath", null);
66+
if (string.IsNullOrEmpty(destinationPath))
67+
{
68+
MessageBox.Show(
69+
"Cannot determine destination directory ($destinationdirectory$ is missing).",
70+
"Error",
71+
MessageBoxButtons.OK,
72+
MessageBoxIcon.Error);
73+
return;
74+
}
7575

76-
if (string.IsNullOrEmpty(btdfInstallDir))
77-
{
78-
MessageBox.Show(
79-
"Cannot find Deployment Framework registry key.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
80-
return;
81-
}
76+
string btdfInstallDir =
77+
(string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\Software\DeploymentFrameworkForBizTalk", "InstallPath", null);
8278

83-
DeploymentOptions options = new DeploymentOptions();
79+
if (string.IsNullOrEmpty(btdfInstallDir))
80+
{
81+
MessageBox.Show(
82+
"Cannot find Deployment Framework registry key. Please install the Deployment Framework for BizTalk MSI.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
83+
return;
84+
}
8485

85-
OptionsForm optionsFrm = new OptionsForm(options);
86-
if (optionsFrm.ShowDialog() != DialogResult.OK)
87-
{
88-
return;
89-
}
86+
DeploymentOptions options = new DeploymentOptions();
87+
88+
OptionsForm optionsFrm = new OptionsForm(options);
89+
if (optionsFrm.ShowDialog() != DialogResult.OK)
90+
{
91+
return;
92+
}
9093

91-
string templateDir = Path.Combine(btdfInstallDir, @"Developer\ProjectTemplate");
94+
string templateDir = Path.Combine(btdfInstallDir, @"Developer\ProjectTemplate");
9295

93-
string[] templateFiles = Directory.GetFiles(templateDir, "*.*", SearchOption.AllDirectories);
96+
string[] templateFiles = Directory.GetFiles(templateDir, "*.*", SearchOption.AllDirectories);
9497

95-
try
96-
{
97-
CopyDirectory(templateDir, destinationPath);
98-
}
99-
catch (Exception ex)
100-
{
101-
MessageBox.Show(
102-
"Failed to copy Deployment Framework template files to destination folder: " + ex.Message,
103-
"Error",
104-
MessageBoxButtons.OK,
105-
MessageBoxIcon.Error);
106-
return;
107-
}
98+
try
99+
{
100+
CopyDirectory(templateDir, destinationPath);
101+
}
102+
catch (Exception ex)
103+
{
104+
MessageBox.Show(
105+
"Failed to copy Deployment Framework template files to destination folder: " + ex.Message,
106+
"Error",
107+
MessageBoxButtons.OK,
108+
MessageBoxIcon.Error);
109+
return;
110+
}
108111

109-
string solutionName = Path.GetFileNameWithoutExtension(dte.Solution.FileName);
110-
string projectFileName = "Deployment.btdfproj";
111-
string projectFilePath = Path.Combine(destinationPath, projectFileName);
112+
string solutionName = Path.GetFileNameWithoutExtension(dte.Solution.FileName);
113+
string projectFileName = "Deployment.btdfproj";
114+
string projectFilePath = Path.Combine(destinationPath, projectFileName);
112115

113-
Dictionary<string, string> replacements = new Dictionary<string, string>();
114-
replacements.Add("[PROJECTNAME]", solutionName);
116+
Dictionary<string, string> replacements = new Dictionary<string, string>();
117+
replacements.Add("[PROJECTNAME]", solutionName);
115118

116-
ReplaceInTextFile(destinationPath, "InstallWizard.xml", replacements, Encoding.UTF8);
117-
ReplaceInTextFile(destinationPath, "UnInstallWizard.xml", replacements, Encoding.UTF8);
119+
ReplaceInTextFile(destinationPath, "InstallWizard.xml", replacements, Encoding.UTF8);
120+
ReplaceInTextFile(destinationPath, "UnInstallWizard.xml", replacements, Encoding.UTF8);
118121

119-
replacements.Add("[GUID1]", Guid.NewGuid().ToString());
120-
replacements.Add("[GUID2]", Guid.NewGuid().ToString());
121-
ReplaceInTextFile(destinationPath, projectFileName, replacements, Encoding.UTF8);
122+
replacements.Add("[GUID1]", Guid.NewGuid().ToString());
123+
replacements.Add("[GUID2]", Guid.NewGuid().ToString());
124+
ReplaceInTextFile(destinationPath, projectFileName, replacements, Encoding.UTF8);
122125

123-
UpdateProjectFile(projectFilePath, options, optionsFrm.WritePropertiesOnlyWhenNonDefault);
126+
UpdateProjectFile(projectFilePath, options, optionsFrm.WritePropertiesOnlyWhenNonDefault);
124127

125-
try
126-
{
127-
dte.ExecuteCommand("File.OpenFile", '"' + projectFilePath + '"');
128-
}
129-
catch (Exception)
130-
{
131-
MessageBox.Show("Failed to open .btdfproj file in editor.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
132-
}
128+
try
129+
{
130+
dte.ExecuteCommand("File.OpenFile", '"' + projectFilePath + '"');
131+
}
132+
catch (Exception)
133+
{
134+
MessageBox.Show("Failed to open .btdfproj file in editor.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
135+
}
133136

134-
MessageBox.Show(
135-
"A default Deployment Framework for BizTalk project has been configured in " + destinationPath + ". You must edit " + projectFileName + " to configure your specific deployment requirements.",
136-
"Project Created",
137-
MessageBoxButtons.OK,
138-
MessageBoxIcon.Information);
137+
MessageBox.Show(
138+
"A default Deployment Framework for BizTalk project has been configured in " + destinationPath + ". You must edit " + projectFileName + " to configure your specific deployment requirements.",
139+
"Project Created",
140+
MessageBoxButtons.OK,
141+
MessageBoxIcon.Information);
142+
});
139143
}
140144

141145
public bool ShouldAddProjectItem(string filePath)

src/AddIn.ProjectWizard/DeploymentFrameworkForBizTalkAddin.ProjectWizard.csproj

Lines changed: 15 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<PropertyGroup>
44
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
55
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -10,11 +10,13 @@
1010
<AppDesignerFolder>Properties</AppDesignerFolder>
1111
<RootNamespace>DeploymentFramework.VisualStudioAddIn.ProjectWizard</RootNamespace>
1212
<AssemblyName>DeploymentFxForBizTalkAddin.ProjectWizard</AssemblyName>
13-
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
13+
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
1414
<FileAlignment>512</FileAlignment>
1515
<SignAssembly>true</SignAssembly>
1616
<AssemblyOriginatorKeyFile>..\DeploymentFrameworkForBizTalkAddin.snk</AssemblyOriginatorKeyFile>
1717
<TargetFrameworkProfile />
18+
<NuGetPackageImportStamp>
19+
</NuGetPackageImportStamp>
1820
</PropertyGroup>
1921
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
2022
<DebugSymbols>true</DebugSymbols>
@@ -36,53 +38,15 @@
3638
<Prefer32Bit>false</Prefer32Bit>
3739
</PropertyGroup>
3840
<ItemGroup>
39-
<Reference Include="Microsoft.VisualStudio.TemplateWizardInterface, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
40-
<SpecificVersion>False</SpecificVersion>
41-
</Reference>
41+
<Reference Include="netstandard" />
4242
<Reference Include="System" />
43+
<Reference Include="System.ComponentModel.Composition" />
4344
<Reference Include="System.Drawing" />
4445
<Reference Include="System.Windows.Forms" />
4546
<Reference Include="System.Data" />
47+
<Reference Include="System.Xaml" />
4648
<Reference Include="System.Xml" />
4749
</ItemGroup>
48-
<ItemGroup>
49-
<COMReference Include="EnvDTE">
50-
<Guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</Guid>
51-
<VersionMajor>8</VersionMajor>
52-
<VersionMinor>0</VersionMinor>
53-
<Lcid>0</Lcid>
54-
<WrapperTool>primary</WrapperTool>
55-
<Isolated>False</Isolated>
56-
<EmbedInteropTypes>False</EmbedInteropTypes>
57-
</COMReference>
58-
<COMReference Include="EnvDTE100">
59-
<Guid>{26AD1324-4B7C-44BC-84F8-B86AED45729F}</Guid>
60-
<VersionMajor>10</VersionMajor>
61-
<VersionMinor>0</VersionMinor>
62-
<Lcid>0</Lcid>
63-
<WrapperTool>primary</WrapperTool>
64-
<Isolated>False</Isolated>
65-
<EmbedInteropTypes>False</EmbedInteropTypes>
66-
</COMReference>
67-
<COMReference Include="EnvDTE80">
68-
<Guid>{1A31287A-4D7D-413E-8E32-3B374931BD89}</Guid>
69-
<VersionMajor>8</VersionMajor>
70-
<VersionMinor>0</VersionMinor>
71-
<Lcid>0</Lcid>
72-
<WrapperTool>primary</WrapperTool>
73-
<Isolated>False</Isolated>
74-
<EmbedInteropTypes>False</EmbedInteropTypes>
75-
</COMReference>
76-
<COMReference Include="EnvDTE90">
77-
<Guid>{2CE2370E-D744-4936-A090-3FFFE667B0E1}</Guid>
78-
<VersionMajor>9</VersionMajor>
79-
<VersionMinor>0</VersionMinor>
80-
<Lcid>0</Lcid>
81-
<WrapperTool>primary</WrapperTool>
82-
<Isolated>False</Isolated>
83-
<EmbedInteropTypes>False</EmbedInteropTypes>
84-
</COMReference>
85-
</ItemGroup>
8650
<ItemGroup>
8751
<Compile Include="..\CommonAssemblyInfo.cs">
8852
<Link>CommonAssemblyInfo.cs</Link>
@@ -107,6 +71,14 @@
10771
<Link>DeploymentFrameworkForBizTalkAddin.snk</Link>
10872
</None>
10973
</ItemGroup>
74+
<ItemGroup>
75+
<PackageReference Include="Microsoft.VisualStudio.SDK">
76+
<Version>16.10.31321.278</Version>
77+
</PackageReference>
78+
<PackageReference Include="Microsoft.VisualStudio.TemplateWizardInterface">
79+
<Version>16.10.31320.204</Version>
80+
</PackageReference>
81+
</ItemGroup>
11082
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
11183
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
11284
Other similar extension points exist, see Microsoft.Common.targets.
-8.8 KB
Binary file not shown.
9.8 KB
Loading

0 commit comments

Comments
 (0)