需要并行运行 BizTalk 解决方案的两个版本,或者无法使用 BizTalk 应用程序停机来部署新版本时,BizTalk 应用程序版本控制可能会成为问题。 如果不需要同时运行解决方案的两个版本(例如,没有长时间运行的业务流程),并且服务维护时段可用,则完全可以取消部署旧版本,并将新版本部署为版本控制策略(无程序集版本控制)。 这是一种可能的版本控制策略,尽管我们仍建议递增文件版本号(告知你在运行 BizTalk Server 的计算机上部署的版本)。
何时使用版本控制
如果需要支持长时间运行的业务流程和/或需要执行 BizTalk 应用程序部署,且没有 BizTalk 应用程序停机,则需要针对不同的版本控制方案实现并实践可靠的端到端 BizTalk Server 版本控制策略。 这包括 .NET 程序集的版本控制和所有 BizTalk 工件的版本控制,其中包括架构、映射、管道、管道组件、流程编排、自定义适配器、在业务流程和映射中调用的自定义类、业务规则以及 BAM。
架构版本控制是唯一的,BizTalk Server 管道根据目标命名空间以及架构中定义的根节点名称来确定消息的消息类型。 有关详细信息,请参阅 管道组件中的架构解析。 如果需要对架构进行版本控制,版本指示器必须是目标命名空间的一部分。 更改架构版本在整个解决方案中具有连锁反应,因此应提前计划。 创建业务流程消息时,搜索 BizTalk Server:8 个提示和技巧,以改进 BizTalk 编程 (提示 1:始终使用多部分消息类型)。 使用此方法在版本控制架构时提供了更大的灵活性。
使用因式分解进行程序集版本管理
如果需要支持长时间运行的业务流程、并行部署或无停机时间升级,则应实现程序集版本控制和打包策略。 为了执行 BizTalk 项目的程序集版本控制,需要以这样的方式对 BizTalk 解决方案程序集进行分解(打包),以便进行 BizTalk Server 版本控制。 有三种分解方法:
不进行因数分解
所有 BizTalk 工件都位于一个程序集中。 这是最容易理解和部署的,但提供了最少的灵活性。
完全分解
每个 BizTalk 工件都在各自的程序集中。 这提供了最大的灵活性,但部署和理解最复杂。
最佳分解
基于 BizTalk 应用程序的深入分析,在“无因素分解”和“完全分解”之间。 除了版本控制之外,还可以轻松实现 BizTalk 主机设计。 这是通过查找 BizTalk 工件之间的关系来实现的。 始终一起进行版本控制的工件通常可以放在同一程序集中。 如果需要对构件进行独立版本管理,则必须将其放入不同的程序集。 这是您想要达到的因式分解程度。
其他资源
定义并实践可靠的版本控制策略,以确保它提供可能需要的任何并行部署策略。 BizTalk Server 应用程序升级和版本控制策略的资源包括: