为了账号安全,请及时绑定邮箱和手机立即绑定

如何在XP / Vista和更高版本上为VB6创建简单的安装系统?

/ 猿问

如何在XP / Vista和更高版本上为VB6创建简单的安装系统?

慕容708150 2019-10-12 09:48:57

强调简单。我从来没有做过安装程序,所以我不想学习太多。我可以将一堆文件移交给它的系统,它将对放置文件的位置做出一些明智的猜测,这是理想的选择。

继续回答一般问题。

但是,在我的情况下,我受到一些额外的约束。要安装的程序是用VB6(或者是5?)和一些早期版本的VB编写的,因此不会很快更新。我有一个正在运行的安装程序,并且将有一个Clean VM配合使用,所以我将做一个循环:运行安装程序,查找损坏的地方,修复它,将其添加到安装程序中,还原VM,然后重试。如果有人有更好的方法,我欢迎您提出建议。

必须让它在XP上运行,并且我真的很想也能在Windows的较新版本上使用它。



查看完整描述

3 回答

?
浮云间

InnoSetup或NSIS,对您而言似乎更简单。ISTool是用于InnoSetup的不错的GUI工具,它使创建安装脚本更加容易。


查看完整回答
反对 回复 2019-10-12
?
桃花长相依

几年前,我在Vista之前就使用过InnoSetup,当时我对此感到非常满意。我只有几个要安装的文件和一个“开始”菜单图标。它效果很好,而且很容易学习。


查看完整回答
反对 回复 2019-10-12
?
拉丁的传说

为程序创建完整的安装程序包本身几乎是一个主题领域。有许多因素需要考虑,我们大多数人都不再运行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之外的构建后步骤中完成。在这里,第三方工具可以帮助您提供更多控制权,而无需诉诸Orca或构建后的Installer脚本。


那些使用脚本编写的“旧版”安装程序的人试图跟上,但是脚本编写变得越来越复杂。结果有时是不确定的。Windows 7引入了一些新功能。


尽管ClickOnce并不是VB6的最佳选择,但没有人说您不能对许多程序的XCopy安装使用无注册限制的COM。就此而言,无Reg的COM甚至可以作为在Installer程序包中使用的好选择。


因此,最后,部署VB6程序的“最简单”方法可能是无规COM XCopy程序包,这些程序包包装在自解压EXE中,它将解压缩脚本以创建“开始菜单”快捷方式。如果没有快捷键就可以生活,那将变得更加容易:只需将软件包解压缩到需要的位置即可!


请参阅“ 制作我的清单”或其他工具以进行无注册的COM打包。


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


查看完整回答
反对 回复 2019-10-12

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信