将多个MSI部署到同一个BizTalk应用程序中

时间:2013-03-08 19:05:28

标签: biztalk biztalk-2010 biztalk-deployment

在开发模式编排,端口等的过程中,我们一直在导出MSI和绑定文件,以便部署到我们的测试和最终生产环境中

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

我们使用biztalk deployment framework来帮助管理我们进行开发时的更改。

答案 1 :(得分:0)

  

所以现在,在测试中,我们最终得到了一个BizTalk应用程序,其中包含我们从HCIS接收消息所需的接收端口和模式。我发现的问题是,如果我查看控制面板中的已安装程序列表,我只会看到1个应用程序。

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

  • 您有多个不同的MSI(每个架构一次),您要导入BizTalk(因此它们出现在BizTalk管理控制台中),但您没有在本地计算机上运行MSI(因此它不是出现在“已安装的程序”中;或
  • 您的MSI都被命名为相同,在这种情况下,在导入到BizTalk和本地安装后,您只能在“已安装的程序”中看到一个程序。
  

我认为有更好的方法可以做到这一点,有什么建议吗?

关于方法,你肯定是正确的。我倾向于建议客户将逻辑工件分组到一个逻辑桶中 - 项目或应用程序 - 可以部署(和重新部署)而不影响系统的其他部分。

在HL7场景中,一个逻辑桶可能是患者工件(模式和支持地图),第二个可能是金融工件(模式和支持地图)。这些逻辑存储区可以根据您的要求部署到不同的BizTalk应用程序或相同的BizTalk应用程序。但是,这里的主要好处是它们是分开的,因此如果您需要对A19 - 患者查询/响应模式进行一些小修改,则不需要重新部署所有工件。

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

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