部署多个MSI';将导入同一BizTalk应用程序

部署多个MSI';将导入同一BizTalk应用程序,biztalk,biztalk-2010,biztalk-deployment,Biztalk,Biztalk 2010,Biztalk Deployment,在架构、业务流程、端口等的开发过程中,我们一直在导出MSI和绑定文件,以便部署到测试环境和最终的生产环境中 因此,例如,我们在单个BizTalk应用程序中设置了一系列接收端口/位置,以便从我们的HCI接收所有HL7 v2消息。然后我们将其导出到绑定文件,并导入到测试中 然后,在开发新模式时,我们将每个模式导出到它自己的msi文件中,并将其部署到测试环境中的同一BizTalk应用程序中。我们这样做是因为模式特定于来自HCI的入站消息 现在,在测试中,我们得到了一个BizTalk应用程序,该应用程序

在架构、业务流程、端口等的开发过程中,我们一直在导出MSI和绑定文件,以便部署到测试环境和最终的生产环境中

因此,例如,我们在单个BizTalk应用程序中设置了一系列接收端口/位置,以便从我们的HCI接收所有HL7 v2消息。然后我们将其导出到绑定文件,并导入到测试中

然后,在开发新模式时,我们将每个模式导出到它自己的msi文件中,并将其部署到测试环境中的同一BizTalk应用程序中。我们这样做是因为模式特定于来自HCI的入站消息


现在,在测试中,我们得到了一个BizTalk应用程序,该应用程序具有从HCI接收消息所需的接收端口和模式。我发现的问题是,如果我查看“控制面板”中的“已安装程序”列表,我只会看到一个应用程序。因此,如果我想卸载并重新安装一个特定的模式,我不确定会发生什么。出于某种原因,我有一半希望看到我安装的每个msi都有一个条目,但我想因为它们都进入同一个BizTalk应用程序,所以它们都在windows中注册为同一个应用程序。我打赌有更好的方法可以做到这一点,有什么建议吗?

您可以而且可能应该为每个逻辑代码组创建不同的应用程序。如果检查项目属性的“deploy”部分,您将看到一个输入应用程序名称的文本框。当您触发部署时,它们将以您提供的名称放置到单独的应用程序中。您将在BizTalk管理控制台中看到它

我们使用下面提到的框架部署到dev。然后,要部署到QA,右键单击应用程序并从该点创建MSI。它只允许为一个应用程序创建MSI

注意:部署设置不会全局保存。如果另一个开发人员打开该项目,他的项目将不会继承您设置的应用程序名称

在进行开发时,我们使用帮助管理更改

现在,在测试中,我们得到了一个BizTalk应用程序,该应用程序具有从HCI接收消息所需的接收端口和模式。我发现的问题是,如果我查看“控制面板”中的“已安装程序”列表,我只会看到一个应用程序

我只能想到两种情况,您可能会观察到这种行为:

  • 您有多个不同的MSI(每个架构一次)要导入BizTalk(因此它们会出现在BizTalk管理控制台中),但您没有在本地计算机上运行MSI(因此它不会出现在“已安装的程序”中);或
  • 所有MSI的名称都相同,在这种情况下,在导入BizTalk和本地安装后,在“已安装程序”中只有一个程序可见
我打赌有更好的方法,有什么建议吗

关于方法,你的思路肯定是正确的。我倾向于建议客户将逻辑构件分组到单个逻辑bucket中(项目或应用程序),可以在不影响系统其他部分的情况下部署(和重新部署)

在HL7场景中,一个逻辑存储桶可能是患者工件(模式和支持映射),第二个逻辑存储桶可能是财务工件(模式和支持映射)。这些逻辑存储桶可以部署到不同的BizTalk应用程序,也可以部署到同一BizTalk应用程序,具体取决于您的需求。然而,这里的主要好处是它们是独立的,因此,如果您需要对19位患者的查询/响应模式进行小的修改,则不需要重新部署所有工件

如何部署完全是另一个问题。我是MSBuild的忠实粉丝,并编写了全面的构建脚本,我对这些脚本进行了调整,并将其重新用于我所从事的每个项目。在最终启动应用程序之前,这些部署脚本将拆除现有环境并从头开始重新构建、创建应用程序、部署资源、导入绑定、创建主机和主机实例等。这种方法消除了流程中的所有人为错误,并且往往受到客户的青睐,这些客户通常让他们的基础架构团队而不是开发团队来执行部署

我注意到Jay提到了BizTalk部署框架的使用。我个人很难使用这个工具,部分原因是我需要在Excel中维护我的配置,我无法轻松地签入源代码管理