首页 / 知识
关于Windows:如何在XP / Vista及更高版本上为VB6创建简单的安装系统?
2023-04-12 23:38:00

How to create a simple install system for VB6 on XP/Vista and newer?强调简单。 我从来没有做过安装程序,所以我不想学习太多。 我可以将一堆文件传送到该系统的系统,它将对放置文件的位置做出一些明智的猜测,将是理想的选择。 继续回答一般问题。 但是,在我的情况下,我遇到了一些额外的限制。 要安装的程序是用VB6(或者是5?)和一些以前的VB版本编写的,因此不会很快更新。 我有一个正在运行的安装程序,并且将有一个Clean VM配合使用,因此我将做一个循环:运行安装程序,查找损坏的地方,修复它,将其添加到安装程序中,还原VM,然后重试。 如果有人有更好的方法,我欢迎您提出建议。 我必须让它在XP上运行,而且我真的很想也能在Windows的新版本上使用它。 InnoSetup或NSIS,以您认为较简单的方式为准。 ISTool是用于InnoSetup的不错的GUI工具,它使创建安装脚本更加容易。 几年前,在Vista之前,我曾使用过InnoSetup,那时我对此非常满意。我只有几个要安装的文件和一个"开始"菜单图标。它效果很好,而且很容易学习。 Dependency Walker对于找出安装程序中缺少哪个dll非常有用。一旦知道了dll,就可以使用"合并模块查找器"找到它所在的合并模块。 为程序创建完整的安装程序包本身几乎是一个主题领域。有许多因素需要考虑,我们大多数人都不再运行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,它们仍然需要注册。 我曾与NSIS合作,克服了它的一些小问题,这是一个很棒的系统。它是免费的,提供大量的插件功能,并且可以完成我需要做的所有事情。 我曾经喜欢Inno Setup。强调"用于"。 当您运行单个文件安装程序时(通常会执行此操作),它将实际安装程序解压缩到temp文件夹下的文件夹中,然后尝试执行它。问题是...一些防病毒程序不允许这样做。 作者意识到这一点,并拒绝对此做任何事情。该文件夹名称是随机的,因此不能添加到您的防病毒程序可能使用的任何豁免列表中。 再次。作者意识到了这一点,并建议我告诉我的用户在安装过程中关闭其防病毒程序。 (就像那样会发生) 我的建议是这个。尝试使安装程序尽可能简单。 Windows Installer是一个非常复杂的软件,当无法正常工作时,可能很难弄清发生了什么。我敢肯定,我们所有人都经历过Windows Installer不断循环尝试尝试修复不再具有源.msi文件的文件的情况。 在大多数情况下,使用Windows Installer就像使用大锤砸开螺母一样。 我将InnoSetup用于自己的东西,并在工作中使用InstallShield(违背我的意愿)。从一个简单的基于脚本的安装程序开始,只有在有充分理由的情况下才使用Windows Installer。 请注意,某些非Windows Installer设置工具(例如InnoSetup)可能缺少将程序集安装到GAC的支持。 |
最新内容
相关内容
机器学习用java还是python?
机器学习用java还是python?,分析,环境,数据,培训,发展,机器,结果,控制台,生态环境,有用,机器学习用python更合适。机器学习不需要面向对象,不学习编程Python用什么电脑
学习编程Python用什么电脑,电脑,数据,培训,基础,产品,以上,固态,经济基础,算法,电脑硬件,python对于电脑硬件基本没什么要求,单纯学Python的话python学习python编程可以从事什么
python学习python编程可以从事什么工作岗位,工作,分析,网络,数据,数字,行政,销售,培训,资产,庞大,一、学Python编程能做的工作,编程方向:1、Webpython学习Python爬虫的用途有哪些
python学习Python爬虫的用途有哪些?,培训,爬虫,用途,python学习Python的正确姿势
python学习Python的正确姿势,培训,姿势,python学习python的三个阶段
python学习python的三个阶段,培训,python哪些人适合学习Python课程?
python哪些人适合学习Python课程?,培训,课程,python有必要去培训机构学习么
python有必要去培训机构学习么,培训,分析,环境,工作,面临,情况,社会,领导,培训班,以上,我是一新手学习Python有需要去培训的必要吗?我想这也python新手如何系统学习
python新手如何系统学习,基础,系统,状态,环境,中级,培训,阶段,代码,概念,管理,我们可把学习python分为4个阶段,每个阶段需要完善的掌握知识点,ppython初学者应该学习Python2还是
python初学者应该学习Python2还是学Python3,代码,企业,培训,下来,情况,软件,分析,设计,时间,地方,如果你是一个初学者,或者你以前接触过其他的python系统内置方法如何获取
python系统内置方法如何获取,系统,代码,培训,方法,对象,字符串,物体,函数,橡皮擦,语法,python系统内置方法如何获取1、说明在实际开发中,我们pythonos怎样处理系统文件
pythonos怎样处理系统文件,系统,培训,环境,代码,文件,环境变量,模块,操作系统,类型,代表,pythonos怎样处理系统文件1、获取系统类型对代码进