我们有一个应用程序的场景,该应用程序具有一个 .Net 和一个 VB6 客户端,应部署为单个捆绑包。它手头的 VB6 部分包含其二进制文件以及 ComPlus 代理。代理的安装程序是使用 COMAdminCatalog.ExportApplication 生成的。这三个部分与 WiX Burn 捆绑在一起,并使用标准的引导程序应用程序。捆绑包的创建是自动构建和部署链的一部分。
问题是如何在引导程序中处理代理的安装程序。
- 无法控制 COMAdminCatalog.ExportApplication 中的产品和升级代码或版本。因此,以前的版本不能被新的升级。(至少我还没有找到方法,有吗?)
- 从 COMAdminCatalog.ExportApplication 生成的 msi 不处理修复或重新安装。将导致整个捆绑包的错误和回滚。
- 不能同时安装两个版本的代理。第二个将导致错误和回滚。
我在将 complusproxy.msi 包装在 bat 脚本中并使用 ExePackage 而不是 MsiPackage 方面取得了一些进展。该脚本首先删除任何以前版本的complusproxy。这样做的问题是让所有不同的安装/升级/卸载方案正常工作。
我正在考虑编辑生成的 complusproxy.msi 以控制升级代码和版本并将其添加到构建过程中的选项。
感觉就像我正在尝试复杂的工作,这应该是一种正确、更好的方法。有什么更好或足够好的方法来解决它?