我正在尝试部署新版本的 BizTalk 应用程序,其中包含多个应用程序(大约 20 个左右)的通用编排。新版本包含一个新的编排,将由多个新应用程序使用。
当我尝试导入新版本的 msi 时,出现错误:
"Cannot update assembly "[assembly_name]" because it is used by assemblies which are not in the set of assemblies to update. To update the assembly, remove the following assemblies: "[dependant_assembly1] [dependant_assembly2] ..."
无法从开发环境访问 BizTalk 服务器,因此必须使用 BizTalk 管理控制台更新应用程序。如何导入更新的应用程序而不删除并重新安装所有 20 个左右的相关应用程序?
谢谢
最佳答案
听起来您正在部署一个新的基础应用程序,其版本号与现有的旧版本相同。
什么对我们有用:
- 每次部署应用程序的新版本时,请增加版本号(由于程序集经过 GAC 处理,BTS 支持并行版本控制)。任何更改的自定义程序集也应该进行版本控制。
- 将新应用程序部署到本地 BizTalk 后,编辑资源以确保所有引用的程序集和绑定(bind)等的正确(最新)版本都是最新的(删除旧版本,添加新版本)。
- 您的通用应用程序现在将包含旧版本和新版本的程序集。较新版本的“客户端”应用程序将使用较新版本的基础/框架/通用应用程序。
- 升级所有相关应用程序后,您就可以删除旧版本。
但真正的解决方案似乎是考虑更多地解耦您的应用程序,例如通过在应用程序之间使用消息传递 - 这样,您可以仅将模式拆分为对应用程序的公共(public)引用。
关于biztalk - 重新部署其他应用程序使用的 BizTalk 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3678510/