如何在XP/Vista及更新版本上为VB6创建一个简单的安装系统?

问题描述:

重视简单。我从来没有做过安装程序,我宁愿不必学习太多。一个系统,我可以把一堆文件交给它,并且它会在理想的情况下做出一些关于将它们放在哪里的巧妙猜测。如何在XP/Vista及更新版本上为VB6创建一个简单的安装系统?

继续并回答一般问题。

但在我的情况下,我坚持一些额外的限制。要安装的程序是用VB6(或它是5?)和VB的一些早期版本编写的,所以它的而不是将很快更新。我有一个正在运行的安装,并将有一个清洁虚拟机来玩所以我会做一个循环:运行安装,找到它的中断,修复它,将其添加到安装程序,恢复虚拟机,再试一次。如果有人有更好的方法,我愿意接受建议。

必须得到它在XP上的工作,我真的很想也能在Windows的新版本上工作的东西。

+0

可能的重复[建立Windows安装程序的最佳选择是什么?](http://*.com/questions/3767/what-is-the-best-choice-for-building-windows-installers) – saschabeaumont 2010-06-04 00:20:22

+0

@sascha不是重复的,因为安装VB6程序与安装有点不同。网络程序 – MarkJ 2011-01-12 09:20:50

InnoSetupNSIS,无论哪个对你来说都比较容易。对于InnoSetup来说,ISTool是一个不错的GUI工具,它使得创建安装脚本变得更加简单。

+0

我使用Inno(我没有尝试其他),并发现易于使用。虽然文档有点亮。 – BCS 2008-09-18 22:25:32

Dependency Walker对于找出安装程序丢失哪个dll非常有用。一旦你知道了DLL,你可以使用Merge Module Finder找到合并模块。

+0

Dependency Walker was /真的/方便的 – BCS 2008-09-18 22:24:06

我已经与NSIS合作,并通过它的一些小复杂的一个梦幻般的系统。它的免费,提供吨插件的能力,并设法做我需要做的一切。

几年前,我曾在Vista之前使用过InnoSetup,当时非常满意。我只安装了几个文件和一个开始菜单图标。它运行得很好,并且很容易学习。

我的建议是这样的。尽量保持安装程序尽可能简单。 Windows安装程序是一个非常复杂的软件,当事情不能正常工作时,很难弄清楚发生了什么。我确定我们都遇到了无休止的Windows Installer循环,试图修复您不再有源.msi文件的文件。

大多数时候使用Windows安装程序就像使用大锤来破解螺母。

我使用InnoSetup为我自己的东西和InstallShield工作(违背我的意愿)。从一个简单的基于脚本的安装程序开始,只有在有充分理由的情况下才使用Windows安装程序。

请注意,对于某些非Windows Installer安装工具(如InnoSetup),可能会缺少对GAC安装程序集的支持。

使用到LOVE Inno Setup。强调“习惯”。

当您运行单个文件安装程序(通常会执行的操作)时,会将实际安装程序解压缩到临时文件夹下的文件夹中,然后尝试执行它。问题是...一些反病毒程序不允许这样做。

作者意识到这一点,并拒绝对此做任何事情。文件夹名称是随机的,因此不能添加到您的防病毒程序可能使用的任何豁免列表中。

再次。作者意识到这一点,并建议我告诉用户在安装过程中关闭他们的防病毒程序。 (就像将要发生的那样)

为程序创建完整安装程序包本身几乎是一个主题。有许多因素需要考虑,我们大多数人不再运行Windows 95。世界并不像以前那么简单。

有很多事情需要解决,其中一些“设置”问题也意味着更改程序。例如,当Vista UAC出现时,对于人们来说似乎是新的“受保护的文件夹”概念。我猜他们都是以管理员或其他方式运行?它最简单的形式意味着你不再把可写入的文件放在程序中的EXE(又名“程序文件”)旁边。

另一个因素是注册表的使用方式发生了变化。我不是在谈论注册表虚拟化,尽管这也是其中的一部分。但是COM注册可以按照每台机器和每个用户来完成,甚至关闭UAC也可以解决这个问题。见Per-User COM Registrations and Elevated Processes with UAC on Windows Vista SP1。结果是安装程序包不应该运行regsvr32(或者调用COM库的self-reg入口点)。请参阅SelfReg Table处的“备注”。


Windows安装程序是前进在大多数情况下方式。 VB6程序员可以免费下载用于创建MSI包的Visual Studio Installer 6.0版本1.1。请参阅VFP文章Using Microsoft Visual Studio Installer for Distributing Visual FoxPro 6.0 Applications上的“COM服务器”以获取一些有价值的信息。

这不是最简单的选项,但VSI 1.1中有一个VB安装向导,以帮助您获得正确的基础知识。进行诸如创建[CommonAppData]子文件夹和设置Everyone权限等高级功能必须在IDE之外的后期构建步骤中完成。这就是第三方工具可以提供更多控制的地方,而无需使用Orca或后期构建安装程序脚本。

那些制作脚本“传统”安装程序的人试图跟上,但脚本变得越来越复杂。结果有时候是可以的。 Windows 7引入了一些自己的新皱纹。

虽然ClickOnce并不是真正的VB6的最佳选择,但没有人说你不能使用免注册的COM来安装许多程序的XCopy。无需注册的COM甚至可以在安装程序包中用于此事。


所以最终的“最简单”的方式来部署VB6程序可能将是免费的REG-COM的XCopy包包裹在一个自解压的EXE,它会激发关闭一个脚本来创建开始菜单快捷键。如果你的生活没有这个快捷方式,那就更简单了:只需将它解压到需要的地方!

Make My Manifest或替代工具免费REG-COM包装。

这要求目标系统运行XP(最好是SP2)或更高版本。这里唯一可能的故障是XP直到XP SP3之前都没有包含VB6 SP6运行时,所以您需要先测试VB6 SP5运行时的程序。还有一个小故障:你不能以这种方式使用ActiveX EXE,他们仍然需要注册。