diff --git a/.gitignore b/.gitignore index 8f45742..1480d2c 100644 --- a/.gitignore +++ b/.gitignore @@ -289,8 +289,5 @@ __pycache__/ # Deployment Framework for BizTalk VSIX/ -src/AddIn.VS2010/ProjectTemplates/DFBTProject.zip -src/AddIn.VS2013/ProjectTemplates/DFBTProject.zip -src/AddIn.VS2012/ProjectTemplates/DFBTProject.zip -src/AddIn.VS2015/ProjectTemplates/DFBTProject.zip +src/AddIn.VS2019/ProjectTemplates/DFBTProject.zip src/Addin/ProjectTemplates/DFBTProject.zip diff --git a/CHANGELOG.md b/CHANGELOG.md index 713bcc9..218be10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +### 2.2.0 [Release] (1/20/2026) + +* Add support for BizTalk 2020 (#4) +* Drop support for BizTalk 2016 (#6) + ### 2.1.0 [Release] (1/18/2026) * Remove support for BizTalk 2010, 2013 R1 and R2 (#3) diff --git a/References/Microsoft.VisualStudio.Shell.12.0.dll b/References/Microsoft.VisualStudio.Shell.12.0.dll deleted file mode 100644 index 13c8e77..0000000 Binary files a/References/Microsoft.VisualStudio.Shell.12.0.dll and /dev/null differ diff --git a/ToolsForVisualStudio.targets b/ToolsForVisualStudio.targets index 3ed3296..21058bf 100644 --- a/ToolsForVisualStudio.targets +++ b/ToolsForVisualStudio.targets @@ -4,9 +4,9 @@ Copyright (C) 2008-Present Thomas F. Abraham. All Rights Reserved. Licensed under the MIT License. See License.txt in the project root. --> - + - 2.1.0.0 + 2.2.0.0 @@ -37,14 +37,14 @@ - + - + diff --git a/src/AddIn.ProjectTemplate/DFBT.vstemplate b/src/AddIn.ProjectTemplate/DFBT.vstemplate index 1f12b69..35b811f 100644 --- a/src/AddIn.ProjectTemplate/DFBT.vstemplate +++ b/src/AddIn.ProjectTemplate/DFBT.vstemplate @@ -14,7 +14,7 @@ - DeploymentFxForBizTalkAddin.ProjectWizard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=e748234cd372cc72 + DeploymentFxForBizTalkAddin.ProjectWizard, Version=2.2.0.0, Culture=neutral, PublicKeyToken=e748234cd372cc72 DeploymentFramework.VisualStudioAddIn.ProjectWizard.AddProjectWizard diff --git a/src/AddIn.ProjectWizard.Test/DeploymentFrameworkForBizTalkAddin.ProjectWizard.Test.csproj b/src/AddIn.ProjectWizard.Test/DeploymentFrameworkForBizTalkAddin.ProjectWizard.Test.csproj index e9b93c5..6361ecc 100644 --- a/src/AddIn.ProjectWizard.Test/DeploymentFrameworkForBizTalkAddin.ProjectWizard.Test.csproj +++ b/src/AddIn.ProjectWizard.Test/DeploymentFrameworkForBizTalkAddin.ProjectWizard.Test.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -10,7 +10,7 @@ Properties VisualStudioAddIn.ProjectWizard.Test DeploymentFxForBizTalkAddin.ProjectWizard.Test - v4.6 + v4.7.2 512 diff --git a/src/AddIn.ProjectWizard/AddProjectWizard.cs b/src/AddIn.ProjectWizard/AddProjectWizard.cs index b693aa8..0e4a6bf 100644 --- a/src/AddIn.ProjectWizard/AddProjectWizard.cs +++ b/src/AddIn.ProjectWizard/AddProjectWizard.cs @@ -2,18 +2,18 @@ // Copyright (C) 2008-Present Thomas F. Abraham. All Rights Reserved. // Licensed under the MIT License. See License.txt in the project root. +using EnvDTE80; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.TemplateWizard; +using Microsoft.Win32; using System; using System.Collections.Generic; +using System.ComponentModel; using System.IO; +using System.Reflection; using System.Text; using System.Windows.Forms; using System.Xml; -using EnvDTE; -using EnvDTE80; -using Microsoft.VisualStudio.TemplateWizard; -using Microsoft.Win32; -using System.Reflection; -using System.ComponentModel; namespace DeploymentFramework.VisualStudioAddIn.ProjectWizard { @@ -39,103 +39,107 @@ public void RunFinished() public void RunStarted(object automationObject, Dictionary replacementsDictionary, WizardRunKind runKind, object[] customParams) { - DTE2 dte = automationObject as DTE2; + ThreadHelper.JoinableTaskFactory.Run(async delegate { + await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); - if (dte == null) - { - MessageBox.Show( - "Cannot convert automation object to DTE2.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } + DTE2 dte = automationObject as DTE2; - if (!dte.Solution.IsOpen) - { - MessageBox.Show( - "Please open your BizTalk solution, then use the Add New Project dialog on the solution to add this project.", - "Error", - MessageBoxButtons.OK, - MessageBoxIcon.Error); - return; - } + if (dte == null) + { + MessageBox.Show( + "Cannot convert automation object to DTE2.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } - string destinationPath = replacementsDictionary["$destinationdirectory$"]; + if (!dte.Solution.IsOpen) + { + MessageBox.Show( + "Please open your BizTalk solution, then use the Add New Project dialog on the solution to add this project.", + "Error", + MessageBoxButtons.OK, + MessageBoxIcon.Error); + return; + } - if (string.IsNullOrEmpty(destinationPath)) - { - MessageBox.Show( - "Cannot determine destination directory ($destinationdirectory$ is missing).", - "Error", - MessageBoxButtons.OK, - MessageBoxIcon.Error); - return; - } + string destinationPath = replacementsDictionary["$destinationdirectory$"]; - string btdfInstallDir = - (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\Software\DeploymentFrameworkForBizTalk", "InstallPath", null); + if (string.IsNullOrEmpty(destinationPath)) + { + MessageBox.Show( + "Cannot determine destination directory ($destinationdirectory$ is missing).", + "Error", + MessageBoxButtons.OK, + MessageBoxIcon.Error); + return; + } - if (string.IsNullOrEmpty(btdfInstallDir)) - { - MessageBox.Show( - "Cannot find Deployment Framework registry key.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - return; - } + string btdfInstallDir = + (string)Registry.GetValue(@"HKEY_LOCAL_MACHINE\Software\DeploymentFrameworkForBizTalk", "InstallPath", null); - DeploymentOptions options = new DeploymentOptions(); + if (string.IsNullOrEmpty(btdfInstallDir)) + { + MessageBox.Show( + "Cannot find Deployment Framework registry key. Please install the Deployment Framework for BizTalk MSI.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + return; + } - OptionsForm optionsFrm = new OptionsForm(options); - if (optionsFrm.ShowDialog() != DialogResult.OK) - { - return; - } + DeploymentOptions options = new DeploymentOptions(); + + OptionsForm optionsFrm = new OptionsForm(options); + if (optionsFrm.ShowDialog() != DialogResult.OK) + { + return; + } - string templateDir = Path.Combine(btdfInstallDir, @"Developer\ProjectTemplate"); + string templateDir = Path.Combine(btdfInstallDir, @"Developer\ProjectTemplate"); - string[] templateFiles = Directory.GetFiles(templateDir, "*.*", SearchOption.AllDirectories); + string[] templateFiles = Directory.GetFiles(templateDir, "*.*", SearchOption.AllDirectories); - try - { - CopyDirectory(templateDir, destinationPath); - } - catch (Exception ex) - { - MessageBox.Show( - "Failed to copy Deployment Framework template files to destination folder: " + ex.Message, - "Error", - MessageBoxButtons.OK, - MessageBoxIcon.Error); - return; - } + try + { + CopyDirectory(templateDir, destinationPath); + } + catch (Exception ex) + { + MessageBox.Show( + "Failed to copy Deployment Framework template files to destination folder: " + ex.Message, + "Error", + MessageBoxButtons.OK, + MessageBoxIcon.Error); + return; + } - string solutionName = Path.GetFileNameWithoutExtension(dte.Solution.FileName); - string projectFileName = "Deployment.btdfproj"; - string projectFilePath = Path.Combine(destinationPath, projectFileName); + string solutionName = Path.GetFileNameWithoutExtension(dte.Solution.FileName); + string projectFileName = "Deployment.btdfproj"; + string projectFilePath = Path.Combine(destinationPath, projectFileName); - Dictionary replacements = new Dictionary(); - replacements.Add("[PROJECTNAME]", solutionName); + Dictionary replacements = new Dictionary(); + replacements.Add("[PROJECTNAME]", solutionName); - ReplaceInTextFile(destinationPath, "InstallWizard.xml", replacements, Encoding.UTF8); - ReplaceInTextFile(destinationPath, "UnInstallWizard.xml", replacements, Encoding.UTF8); + ReplaceInTextFile(destinationPath, "InstallWizard.xml", replacements, Encoding.UTF8); + ReplaceInTextFile(destinationPath, "UnInstallWizard.xml", replacements, Encoding.UTF8); - replacements.Add("[GUID1]", Guid.NewGuid().ToString()); - replacements.Add("[GUID2]", Guid.NewGuid().ToString()); - ReplaceInTextFile(destinationPath, projectFileName, replacements, Encoding.UTF8); + replacements.Add("[GUID1]", Guid.NewGuid().ToString()); + replacements.Add("[GUID2]", Guid.NewGuid().ToString()); + ReplaceInTextFile(destinationPath, projectFileName, replacements, Encoding.UTF8); - UpdateProjectFile(projectFilePath, options, optionsFrm.WritePropertiesOnlyWhenNonDefault); + UpdateProjectFile(projectFilePath, options, optionsFrm.WritePropertiesOnlyWhenNonDefault); - try - { - dte.ExecuteCommand("File.OpenFile", '"' + projectFilePath + '"'); - } - catch (Exception) - { - MessageBox.Show("Failed to open .btdfproj file in editor.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); - } + try + { + dte.ExecuteCommand("File.OpenFile", '"' + projectFilePath + '"'); + } + catch (Exception) + { + MessageBox.Show("Failed to open .btdfproj file in editor.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } - MessageBox.Show( - "A default Deployment Framework for BizTalk project has been configured in " + destinationPath + ". You must edit " + projectFileName + " to configure your specific deployment requirements.", - "Project Created", - MessageBoxButtons.OK, - MessageBoxIcon.Information); + MessageBox.Show( + "A default Deployment Framework for BizTalk project has been configured in " + destinationPath + ". You must edit " + projectFileName + " to configure your specific deployment requirements.", + "Project Created", + MessageBoxButtons.OK, + MessageBoxIcon.Information); + }); } public bool ShouldAddProjectItem(string filePath) diff --git a/src/AddIn.ProjectWizard/DeploymentFrameworkForBizTalkAddin.ProjectWizard.csproj b/src/AddIn.ProjectWizard/DeploymentFrameworkForBizTalkAddin.ProjectWizard.csproj index 6ec4c04..1d99cc7 100644 --- a/src/AddIn.ProjectWizard/DeploymentFrameworkForBizTalkAddin.ProjectWizard.csproj +++ b/src/AddIn.ProjectWizard/DeploymentFrameworkForBizTalkAddin.ProjectWizard.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -10,11 +10,13 @@ Properties DeploymentFramework.VisualStudioAddIn.ProjectWizard DeploymentFxForBizTalkAddin.ProjectWizard - v4.6 + v4.7.2 512 true ..\DeploymentFrameworkForBizTalkAddin.snk + + true @@ -36,53 +38,15 @@ false - - False - + + + - - - {80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2} - 8 - 0 - 0 - primary - False - False - - - {26AD1324-4B7C-44BC-84F8-B86AED45729F} - 10 - 0 - 0 - primary - False - False - - - {1A31287A-4D7D-413E-8E32-3B374931BD89} - 8 - 0 - 0 - primary - False - False - - - {2CE2370E-D744-4936-A090-3FFFE667B0E1} - 9 - 0 - 0 - primary - False - False - - CommonAssemblyInfo.cs @@ -107,6 +71,14 @@ DeploymentFrameworkForBizTalkAddin.snk + + + 16.10.31321.278 + + + 16.10.31320.204 + +