为程序创建完整的安装包本身几乎就是一个主题领域。有许多因素需要考虑,我们大多数人不再运行 Windows 95。世界不像以前那么简单了。
有很多事情需要解决,其中一些“设置”问题也意味着更改程序。例如,当 Vista UAC 出现时,“受保护的文件夹”概念对人们来说似乎是新的。我猜他们都是以管理员身份运行的还是什么?以最简单的形式,这意味着您不再将可写文件放在程序(又名“程序文件”)中的 EXE 旁边。
另一个因素是注册表的使用方式发生了变化。我不是在谈论注册表虚拟化,尽管这也是其中的一部分。但是 COM 注册可以在每台机器和每个用户上完成,甚至关闭 UAC 也会把它搞砸。请参阅Windows Vista SP1 上使用 UAC 的每用户 COM 注册和提升的进程。结果是安装程序包不应运行 regsvr32(或以其他方式调用 COM 库的 self-reg 入口点)。请参阅SelfReg 表中的“备注” 。
在大多数情况下, Windows Installer 是前进的道路。VB6 程序员可以免费下载 Visual Studio Installer 6.0 1.1 版来创建 MSI 包。有关一些有价值的信息,请参阅 VFP 文章使用 Microsoft Visual Studio 安装程序分发 Visual FoxPro 6.0 应用程序中的“COM 服务器” 。
这不是最简单的选择,但 VSI 1.1 中有一个 VB 设置向导,可以帮助您正确掌握基础知识。执行高级操作(例如创建 [CommonAppData] 子文件夹并在其上设置所有人权限)必须在 IDE 之外的构建后步骤中完成。这就是第 3 方工具可用于为您提供更多控制权的地方,而无需求助于 Orca 或构建后的安装程序脚本。
那些制作脚本“遗留”安装程序的人试图跟上,但脚本变得越来越复杂。结果有时是不确定的。Windows 7 引入了一些自己的新功能。
虽然 ClickOnce 并不是 VB6 的最佳选择,但没有人说您不能使用无注册 COM 来安装许多程序的 XCopy。就此而言,无注册 COM 甚至可以成为在安装程序包中使用的不错选择。
因此,最终部署 VB6 程序的“最简单”方法可能是使用自解压 EXE 中的无注册 COM XCopy 包,该 EXE 将触发脚本以创建“开始”菜单快捷方式。如果您可以不使用快捷方式,那就更容易了:只需将包解压缩到需要去的地方!
请参阅Make My Manifest或用于无注册 COM 打包的替代工具。
这要求目标系统运行 XP(最好是 SP2)或更高版本。这里唯一可能的故障是 XP 直到 XP SP3 才包含 VB6 SP6 运行时,因此您需要首先针对 VB6 SP5 运行时测试您的程序。还有一个小问题:您不能以这种方式使用 ActiveX EXE,它们仍然需要注册。