使用WiX安装VB6二进制文件

Jos*_*ark 5 vb6 wix

我正在将InstallShield项目转换为基于WiX的安装程序.我有许多VB6项目需要注册二进制文件.

InstallShield项目实际上将这些标记为自注册文件.从我所看到的,这似乎是Windows Installer世界中的"坏事".

我的问题是,那我该怎么办?每次重新编译后,VB6项目的内部GUID都会发生变化 - 是的,我已经在使用二进制兼容性了.

我使用Heat来生成所有注册表和类条目,但其中一些条目从构建更改为构建.我已经读过,Heat不是为每次构建而设计的,而是用作起点.

其他人正在做什么来处理VB6和WiX注册?

Wim*_*nen 1

我们一直在尝试的一件事是通过使用免注册 COM来完全消除全局 COM 注册来完全消除全局 COM 注册。(我们追求的主要优势是能够完全隔离地并行部署同一应用程序的不同版本。)

但是,使用免注册 COM,您仍然需要编写或生成需要由安装程序部署的清单文件。链接问题的答案表明有一些工具可以帮助解决这个问题。

与此同时,我们仍然对旧的 VB6 和 Delphi 库使用自注册和通过 heat.exe 自动生成 wxs 的组合。虽然你是对的,热量最初并不是为了这样使用而设计的,但它一直在朝这个方向发展一段时间了。

无论如何,只有当您想要支持较小的升级或在应用程序之间共享组件时,标识符的稳定重新生成(这是 heat.exe 的初始设计中所缺少的)才重要。我们只是在升级(也称为重大升级)时完全卸载了产品的先前版本,因此我们不需要担心此类事情。

编辑:自从 2010 年写下这个答案以来,我对 Windows 安装程序了解了一两件事。我不再相信重大升级可以让您不再需要稳定的 GUID。组件 GUID 在就地升级之间应尽可能保持稳定。主要升级并不总是具有与卸载+重新安装相同的最终结果。