从Visual FoxPro 70开始,取消了一直使用的安装向导,而是在发布盘中附带一个有功能限制的InstallShield Express软件,虽然有功能上的限制,但是相对于安装向导而言,该工具所具有的强大功能和灵活的安装程序建立技术,使客户高效安装和配置应用程序成为可能。由于该软件全部为英文界面,并且由于其功能强大也导致了安装设置上的复杂性与多样性,可能令许多一直使用安装向导制作安装程的Visual FoxPro程序员一时难以上手。本文将结合一个具体安装程序的制作过程,详细介绍该工具的使用方法。
1、发布应用程序前
Visual FoxPro 80安装光盘中包含了InstallShield Express 354 (SP4)的限制版,很自然,除了使用该软件外,也可以使用任何基于Microsoft Windows Installer技术的安装程序制作软件来建立一个安装程序(msi)或与Microsoft Windows Installer兼容的合并模块(msm),除了Visual FoxPro运行时间库文件外,一些发布方案需要合并模块,详细信息请参考Visual FoxPro帮助中对发布方案的介绍。
准备发布一个应用程序时,首先应该考虑几个问题。除了在下面介绍的应用程序发布过程中的过程大纲外,还应当确认应用程序结构,解决如何交付应用程序给客户,以及如何更好的组织自己的安装程序,当回答了所有这些问题时,发布Visual FoxPro 应用程序就准备好了。
本文的例子中要发布的这个应用程序是一个用于检测网络通信状态的工具,在该软件中,使用一个第三方控件Ping Wizard(用于执行网络检测)和通用控件Microsoft StatusBar Control 60(用于显示一些状态信息),该软件包含一个可执行EXE文件和一个CHM帮助文件及一些数据库文件。
2、使用InstallShield Express创建安装程序
建立安装工程是建立安装程序的第一步。使用InstallShield Express建立的工程文件(ism)是基于Windows Installer工程文件的,该文件存储所有的逻辑和必要的信息来建立一个与Windows Installer兼容的安装程序。
图1 InstallShiled Express界面 图2 新建工程对话框
⑴、建立安装工程
① 首先打开InstallShiled Express,如图1所示。
② 在File(文件)菜单上单击New(新建)选项来打开New Project(新建工程)对话框,图2。
③ 在Project Name and Location(工程名和位置)框中选定要保存的工程的位置,并重新命名默认得工程名,然后单击OK(确定)按钮。
④ 如果要建立英语语言之外的安装程序,可以在Project Language(工程语言)列表框中选择一个相应的替代语言。例如,如果要在安装程序对话框中使用简体中文文字,必须将语言设置为Chinese(Simplified),否则安装期间对话框的中文将会变成乱码。
需要注意的是,在选择了一种语言后,不能再进行修改。该工程的设置如图2所示。
⑵、定义工程属性
在建立一个安装工程之后,可以定义工程的属性,如:
● Product Name(产品名称)
● Product Version(产品版本)
● Product Icon(产品图标)
● 所有应用程序文件的默认安装目录
● Readme文件的名称和位置
至少应该指定产品名称并指定一个默认安装目录。InstallShield Express中的INSTALLDIR属性指定默认安装目录的位置,如应用程序主目录。由INSTALLDIR属性指定的默认安装目录位置是:
[ProgramFilesFolder]Your Company Name\Your Product Name
注意:推荐为用户的应用程序更改Your Company Name和Your Product Name为适当的名称。也可以通过设置INSTALLDIR为应用程序指定的一个不同的目录,例如,以ScanPing作为应用程序的安装目录:
[ProgramFilesFolder]ScanPing
如果计划安装一些数据或数据库文件,也可以编辑DATABASEDIR属性来为这些文件指定默认的目标目录。
为安装工程指定常用信息的方法如下:
① 在Organize Your Setup(组织安装文件)节点下单击General Information(常规信息)。
② 编辑属性列表中的各字段值。
我们对于该工程的设置如图3所示。
图3 工程属性设置 图4 新建部件
⑶、划分产品功能
从应用程序用户和InstallShield Express的整体看,一个功能可以被作为一个应用程序的组件。该功能为用户部分安装应用程序提供了可能。例如,在Visual FoxPro安装期间,可以指定是否安装作为功能组件的Visual FoxPro示例和Visual FoxPro工具。
注意:在创建一个安装程序时,划分产品功能并不是必要的,尽管这对用户有帮助。
安装功能的默认设置是Always Install(总是安装),新建一个功能的步骤如下:
① 在Organize Your Setup(组织安装文件)节点下单击Features(部件)。
② 添加一个新功能,在窗格中间的树形视图的Features(部件)节点单击右键,然后单击New Feature(新建部件),如图4所示。
③ 输入一个新部见名称并回车。
在确认产品部件后,可以设置部件属性,例如部件描述、部件如何被发布,以及部件是否为必须等。
设置部件属性的步骤如下:
① 选定要修改属性的部件。
② 在属性列表中,单击或双击属性的字段值来编辑该值。要显示更多选项,单击右边的“…”或下拉箭头按钮。
③ 为属性输入或选择新值。
例如,要想提供安装应用程序帮助文件的安装选项,下面的步骤将建立该部件,并命名为“帮助文件”。如果要使“帮助文件”在安装时可选,要设置Required(必需的)属性为No(否)。如果你希望在用户第一次通过按F1使用帮助时,常使调用该功能,并提供用户进行安装,应当设置Advertised(做广告)属性为Allow Advertise(允许广告,即可选择“在首次使用时安装”),如图5所示。
⑷、为安装类型指定部件
在一个安装程序中可以包含不同的安装类型并可以指定哪个功能对应于哪个要安装的类型,安装类型提供了不同的安装级别来允许用户进行选择。
●“典型安装”安装所有部件和文件
●“最小化安装”仅安装应用程序所必须的部件和文件的最小数量
●“自定义安装”可以由用户指定哪个部件要被安装
应当至少包含一个安装类型。例如,一个基本的安装程序应当包含由“始终安装”和“典型安装(&T)”类型列出的其它部件,在安装类型名称中的“&”表示在安装程序用户界面中一个特定安装类型的快捷键,用户可以包含或移除安装类型(只要剩余一个可用),或重命名安装类型。
选择安装类型并为每个安装类型指定部件的步骤如下:
① 在Organize Your Setup(组织安装文件)节点下点击Setup Types(安装类型)。
② 在Setup Types窗格中选择你要包含的安装类型。
③ 在Features installed for <selected> setup type(部件将被安装为 <选定的> 安装类型)窗格种,为你选定的安装类型选择要安装的部件。
在这些设置中,我们将3种安装类型全部选定,在为安装类型指定部件时,只在“最小化安装”类型中去除了对帮助文件部件的选择,如图6所示。
图5 设置部件属性 图6 为安装类型指定部件
⑸、添加文件到安装程序
可执行文件(exe)通常用于为用户启动应用程序,可以首先添加该文件和应用程序所需要的其它文件,其次是一些可选文件。
Visual FoxPro提供扩展应用程序功能性的资源文件,包括FoxUser资源文件、API库和Microsoft ActiveX控件,如果要使用这些文件,应该将它们添加到安装程序中,方法如下:
① 在Specify Application Data(指定应用程序数据)节点下单击Files(文件)。
② Files(文件)窗格被分为四个部分,左边显示源文件夹和目标计算机文件夹,右边显示这些文件夹中的文件。
在向安装工程添加文件前,应当选择Features(部件)下拉列表框来指定与部件相关联的文件,如图7所示。
在Features(部件)下拉选项框内选择相应的部件之后,可以通过从源文件夹复制或拖曳文件到目标计算机文件夹内来向安装工程添加文件。
从源文件夹向目标文件夹添加文件的步骤如下:
a、在Destination Computer’s folders(目标计算机的文件夹)窗格内,选择要安装应用程序的目标目录。
b、在Source computer’s files(源计算机的文件)窗格内,拖曳源文件到目标目录。
注意,文件夹由General Information(常规信息)节点的INSTALLDIR属性指定,作为默认安装目录出现在Destination computer’s folders(目标计算机的文件夹)窗格内。拖曳源文件到目标文件夹仅通知InstallShield Express在创建安装程序时在哪里能够找到这些文件,并不从源计算机上移动或撤销移动任何文件。
将帮助文件Ping_HelpCHM放在“帮助文件”功能中,其他文件则全部放在“始终安装”部件中。
图7 选择部件 图8 查看或添加于定义文件夹
也可以查看预定义文件夹列表,从中选择并添加到目标计算机文件夹列表中,查看并添加于定义文件夹的方法如下:
a、在Destination computer’s folders(目标计算机的文件夹)窗格内,在Destination computer(目标计算机)上单击右键。
b、单击Show predefined Folders(显示预定义文件夹)。
c、选择要添加的文件夹,如图8所示。
所选择的文件夹将出现在目标计算机文件夹列表中,也可以在目标文件夹中建立一个或多个子文件夹。在目标文件夹内建立子文件夹的方法如下:
a、在目标文件夹上单击右键,然后选择Add(添加)。
b、为新文件夹输入一个名称并回车,如图9所示。
选定文件后,对某些文件要选择注册类型,Windows Installer包含下列功能:
① 撤销一个不成功的安装,将目标计算机恢复到安装前的状态。
例如COM服务器,像ActiveX、COM和COM+ 文件,需要特定的注册,应用程序才能访问这些接口。这些OCX、EXE和DLL文件通常包含自我注册功能,被用于在安装期间进行注册,然而,对于Windows Installer,依靠自我注册将产生一些问题。
注册一个COM服务器时,强烈建议选择Extract COM Information(提取COM信息)替代Self-registration(自我注册)作为文件的注册类型。如果选择了Self-registration(自我注册),需要从注册表正确移除COM服务器时,Windows Installer不会有任何提示信息。
对于传统的脚本安装程序,Self-registration(自我注册)可以接受安装COM对象并仍然有效,但是,Self-registration(自我注册)COM对象不会传递他们的安装和注册信息给Windows Installer,因此,Windows Installer不会撤销Self-registration(自我注册)COM对象安装和注册或发布的这些对象。
② 发布安装产品或单独产品部件,如COM对象。
向用户或目标计算机发布一个产品或COM对象,并使之生效,但是并不安装,直到用户尝试访问这些部件时才进行安装。
使用InstallShield Express注册一个COM服务器的步骤如下:
a、在Specify Application Data(指定应用程序数据)节点下点击Files(文件)。
b、从源文件夹复制COM服务器文件到目标文件夹。
c、在要注册的文件上单击右键,并单击Properties(属性)。
d、在Properties(属性)对话框中单击COM & NET Settings(COM和NET设置)页。
e、选择一个Registration Type(注册类型)。
在该项步骤中,我们将所使用的第三方控件Ping Wizard的注册类型设置为Self-registration(自我注册),如图10所示。
图9 在目标文件夹内添加自文件夹 图10 设置Ping Wizard的注册类型
⑹、选择对象和合并模块
一个合并模块(msm文件)包含所有的逻辑、注册表项目和需要安装的应用程序文件或运行时间库文件。如果手工安装应用程序,需要复制Visual FoxPro运行时间库到目标计算机并注册,不过,如果选择了Microsoft Visual FoxPro 8 Runtime Libraties合并模块,InstallShield Express会为你正确的复制并注册运行时间库文件。
对于Visual FoxPro应用程序,至少应该选择Microsoft Visual FoxPro 8 Runtime Libraties和XML 40组件。
注意,当选择了Microsoft Visual FoxPro 8 Runtime Libraties组件,Microsoft Visual C++ Runtime Libraties 70和GDI Plus Redist组件将被自动选定,Visual FoxPro 80必需这些组件,因此,请不要清除对这些选项的选定。
为安装程序选择对象和合并模块的步骤如下:
① 在Specify Application Data(指定应用程序数据)节点下单击Objects/Merge Modules(对象/合并模块)。
② 在InstallShield Objects/Merge Modules(InstallShield 对象/合并模块)窗格中,选中你要安装的合并模块前面的复选框。
③ 当Conditional Installation(安装条件)窗格中的选择框可用时,可以为部件指定安装相应的合并模块。
在该步骤中,选择了Microsoft Visual FoxPro 8 Runtime Libraties、Microsoft Visual C++ Runtime Libraties 70、GDI Plus Redist、Microsoft Visual FoxPro 8 HTML Help Support Librar(用于支持CHM帮助文件)、Microsoft Visual FoxPro 8 Resource、Microsoft Component Category Manager Library和Microsoft Windows Common Controls(60)模块,如图11所示。之所以选择Microsoft Windows Common Controls(60),是因为应用程序所使用的StatusBar(状态栏)包含在该模块中,这是与Visual FoxPro 60安装向导不同的地方,至于组件中所包含的控件列表,请参考下面Visual FoxPro发布方案中的表1。
⑺、建立快捷方式
InstallShield Express允许在“开始”菜单和“桌面”中建立快捷方式和文件夹。
建立文件夹或快捷方式的步骤如下:
① 在Configure the Target System(配置目标系统)节点下单击ShortCuts/Filders(快捷方式/文件夹)。
② 在中间窗格的Shortcuts(快捷方式)树形视图上,在你要放置快捷方式的节点上单击右键,然后选择New Shortcut(新建快捷方式)或New Folder(新建文件夹),如图12所示。
图11 选择对象和合并模块 图12 建立文件夹或快捷方式
③ 如果建立一个快捷方式,应当为该快捷方式指定一个目标文件,在出现的Browse for Shortcut Target(浏览快捷方式目标)对话框中,在Look in(搜索)列表中双击你要建立快捷方式的文件,如图13所示。
④ 输入快捷方式或文件夹的名称,然后按回车键。
重命名文件夹或快捷方式,在名称上面单击右键,然后单击Rename(重命名),输入新名称后回车。
在该项设置中,为示例程序在“程序”菜单中建立了一个“网络监测小精灵”程序组(即新建文件夹),并在其下面建立了“小精灵”和“使用帮助”两个快捷方式,同时也在桌面上建立了一个“小精灵”快捷方式。在建立快捷方式时,必须将Working Directory(工作目录)属性设置为INSTALLDIR,否则,如果你的应用程序在调用数据库时没有指定绝对路径(程序设计时,不建议使用绝对路径,因为程序在安装时,用户可能将程序安装于其它目录中),则会提示找不到数据库。如图14所示。
图13 为快捷方式指定文件 图14 为快捷方式中的文件指定工作目录
⑻、建立注册表项
如果你的应用程序使用注册表项,例如,要跟踪用户权限,InstallShield Express可以在安装期间添加这些到目标计算机中,如果这些项在开发计算机中不存在,可以手动建立他们。
注意,建立注册表项在创建应用程序时不是必须的。
注册表项被建立在注册表主键中,注册表主键根据功能对注册表项进行分类,例如,COM服务器类存储在HKEY_CLASSES_ROOT注册表主键处;软件选项,如Visual FoxPro选项,存储在HKEY_CURRENT_USER主键中的Software子键下。
建立注册表项的步骤如下:
① 在Configure the Target System(配置目标系统)节点下单击Registry(注册表)。
② 在Destination computer’s Registry View(目标计算机的注册表视图)窗格内,在要创建注册表项的的注册表主键上面单击右键。
③ 在出现的快捷菜单上,指向New(新建)并单击Key(项),如图15所示。
④ 输入项的名称并回车。
⑤ 在所建立的新项上单击右键,指向New(新建),并选择要添加的值的类型,如图16所示。
⑥ 在Destination computer’s registry data(目标计算机的注册表数据)窗格中双击一个项来输入数据值。
图15 新建注册表项 图16 添加注册表项的值
⑼、建立ODBC数据源名称(DSNs)
如果开发计算机上先前已经存在DSNs,可以通过InstallShield Express将DSN安装到目标计算机上。如果要安装DSNs,在选择be并模块时应该包含MDAC组件。
建立DSNs的步骤如下:
① 在Configure the Target System(配置目标系统)节点下单击ODBC Resources(ODBC资源)。
② 在ODBC Resources(ODBC资源)树形视图中选定你要在目标计算机上建立的DSNs前的复选框。
⑽、自定义安装界面
InstallShield Express可以选择并更改在安装应用程序时用户所能见到的对话框界面,可以为每个对话框指定位图(BMP)及添加附属对话框,例如,允许用户指定一个安装目标文件夹。
选择安装对话框的步骤如下:
① 在Customize the Setup Appearance(自定义安装程序外观)节点下选择Dialogs(对话框)。
② 在Dialogs(对话框)树形视图中选择在安装期间要显示的对话框。
当选中一个对话框时,该对话框的图像将显示在左下窗格中,并且该对话框的属性显示在右上窗格中。
要在安装过程中显示“目标文件夹”对话框的方法如下:
①在Customize the Setup Appearance(自定义安装程序外观)节点下选择Dialogs(对话框)。
② 在Dialogs(对话框)树形视图中选中Destination Folder(目标文件夹)前面的复选框。
对于License Agreement(授权协议)对话框,可以在其License File(授权文件)属性中指定一个自己的授权协议文件,该文件为RTF格式,可以使用写字板或者Word编辑后将文件另存为这种格式。
我们的示例安装程序对于此步骤的设置如图17所示。
⑾、编译安装程序
在完成安装工程的所有要素(包括部件、文件、快捷菜单、注册表项和用户界面)的设计属性设置后,就可以编译安装程序了。
通常这样的编译类型为CD-ROM或SingleImage(单个映像),选择CD-ROM编译成的安装程序包含有目录结构的文件组织形式,选择SingleImage(单个映像)则把所有文件整合到一个单独的文件中,类似安装向导的网络安装方式。
编译安装程序的步骤如下:
① 在Prepare for Release(准备发布)节点下单击Build Your Release(编译安装程序)。
② 在Build(编译)树形视图中选择要建立的介质类型。
③ 在属性列表中,设置或编辑编译属性。
④ 要编译安装程序,在所选择的介质类型上单击右键,然后单击Build(编译),如图18所示。
图17 对话框设置 图18 编译安装程序
InstallShield Express将把编译好的安装程序存放到下面的文件夹中:
<工程文件夹>\Express\<媒介类型>\DiskImages\DISK1
测试安装程序非常重要,使用InstallShield Express可以不用实际运行安装程序而测试安装程序。
测试的步骤如下:
① 在Prepare for Release(准备发布)节点下单击Test Your Setup(测试安装程序)。
② 在Build(编译)树形视图中选择要测试的介质类型。
③ 如果希望运行安装程序并安装文件到开发计算机中,单击Run Your Setup(运行安装);如果只是想测试安装程序对话框和一些你所选择的自定义行为,单击Test Your Setup(测试运行),如图19所示,该选项不安装任何文件或改变 *** 作系统。
在编译和测试完毕后,你可以准备发布应用程序了。
发布的步骤如下:
① 在Prepare for Release(准备发布)节点下单击Distribute Your Release(发布安装程序)。
② 在Build(编译)树形视图中选择要测试的介质类型。
③ 直接输入或单击Browse(浏览)并选择安装程序要复制到的位置。
④ 当然,也可以复制安装程序到一个FTP服务器上。
至此,示例安装程序也已经制作完毕,该安装程序支持自定义安装,如图21所示。
然后单击Distribute To Location(分配到该位置),如图20所示。
图19 测试安装程序 图20 发布应用程序
图21 自定义安装效果
3、Visual FoxPro 发布方案
该步骤假定只安装了一个简单的Visual FoxPro应用程序,而没有Visual FoxPro Runtime Libraties之外的其他附属。下列信息包含了除只安装Visual FoxPro应用程序和本地数据之外的发布方案所需要的指导。对于这些方案,在为安装程序选择对象和合并模块时可以适当添加。
⑴、Web Services和SOAP
如果你的应用程序使用了Web Services或SOAP,应当包含下列组件:
● SOAP SDK Files(Soap_Coremsm)
● Visual BASIC Virtual Machine(MSVBVM60msm)
● Microsoft Component Category Manager Library(Comcatmsm)
● Microsodt OLE 240(OLEAUTmsm)
● Microsoft Visual FoxPro OLE DB Provider(VfpOLEDBmsm)
Microsoft Visual FoxPro OLE DB Provider为Visual FoxPro和其他应用程序使用OLE DB或ActiveX Data Objects(ADO)访问Visual FoxPro数据提供了可能,要安装Visual FoxPro OLE DB Provider到目标计算机,应当包含Microsoft Visual FoxPro OLE DB Provider(VfpOLEDBmsm)合并模块。
⑵、ActiveX控件
ActiveX控件是许多Visual FoxPro应用程序的通用要素,你的InstallShield Express安装程序要包含ActiveX控件,应当包含Microsoft Component Category Manager Library(Comcatmsm)合并模块。
① 通用ActiveX控件
这些是由Visual FoxPro和Microsoft Visual Studio附送的通用ActiveX控件,InstallShield Express附送这些控件的大部分合并模块。
有必要的话,可以为需要的控件添加合并模块。例如,如果应用程序中使用了TreeView控件,则应当包含MSCOMCTLmsm合并模块。
合并模块所包含的通用控件的信息如表1所示。
② Microsoft Foundation Class(MFC)控件
一些较旧的控件,例如Calendar控件,使用MFC类库,因此,推荐包含适当的MFC合并模块,如MFC42msm,作为VBCCE控件,你应当手动添加控件到工程中并进行各种设置。
③ 第三方控件
如果在应用程序中使用了第三方控件,则需要使用InstallShield Express的Registry(注册表)窗口为一些必需的注册需求添加指定的注册表项。
关于第三方控件的更多信息,参考由销售商提供的关于如何以及在哪里安装这些控件的文档。该文档也应该提供一些所需要的附加文件的信息,例如象MFC文件。
你也许正在为发布自己开发的应用程序和组件犯难,因为按照传统的方法,需要写一些复杂的安装脚本。本文的目的就是帮助NET程序员熟悉使用非常简单方便的工具来发布自己的应用程序而无须编写安装脚本。微软的NET安装发布平台把这一切简化为几次简单点击,它提供了自学习的,简单驱动的向导方式。很多使用Visual Studio NET的程序员没有充分利用VS自带的Windows Installer工具而选择了其他的工具。其实,它使用起来非常简单。
Windows Installer的特性
·和传统的基于脚本的安装工具对比,它基于一个数据驱动的模型,在单个包内提供所有的安装数据和指令
·它支持自修复功能--程序可以自动重新安装
·它提供安装时回退到某一步骤的功能
创建发布工程
Visual StudioNET里提供了四种类型发布工程的模板:
·安装工程:为基于windows的应用程序建立安装包
·合并模块工程(msm):可以被多个程序共享的包组件
·Web安装工程:为一个web应用程序建立安装包
·Cab工程(cab):创建cab文件
与此同时,安装向导也提供了伴随创建发布工程的过程中的帮助步骤:
·对于一个安装工程,将把需要安装的文件发布到目标计算机的一个程序目录下
·对于一个Web安装工程,将把需要安装的文件发布到Web服务器的一个虚拟目录下
注意:如果你创建了一个标准发布工程,后来打算发布它到Web上,你必须重新创建一个新工程。
五步制作程序安装包
第一步:打开VS IDE,选择File->New->Setup and Deployment Projects 选择Setup Wizard。给出存储工程的文件名和存放目录。如图1所示。
第二步:这里将会显示安装工程向导的对话框的欢迎界面。这是一个简单的四步向导,点击Next,第二步将会询问安装的类型,请选择合适的回答,这里我选择windows应用程序的安装,点击Next。
第三步:这里向导将会让你添加开发的程序或者组件,以及其他一些所需要的文件,如文档文件等。
最后,你会看到如图5所示的内容:
这里,应用程序文件夹是你的程序和支持文件的安装文件夹,而用户的桌面和程序菜单分别是目标系统的桌面和程序菜单。
第四步:
你可以在制作过程中选择使用如下的编辑器:
文件系统编辑器:可以增加工程的输出,文件和其他一些项到发布工程中,并且指定它们在目标计算机上的安装位置。
注册表设置管理编辑器:可以指定需要加入到目标计算机的注册表中的一些键值。
文件类型管理编辑器:建立目标计算机上的文件关联。
定制处理管理编辑器:可以指定在安装后执行的一些处理(如重启)等。
启动条件管理编辑器:可以为成功完成一次安装指定必须满足的一些条件。
用户界面管理编辑器:你可以用它来设置安装过程中显示的一些预定义的对话框,图7显示了增加一个用户许可证协议和序列号对话框的例子。
结束语
如果你还在使用传统的安装脚本程序的话,来试试使用Windows Installer吧。如果你购买了正版的Visual StudioNET,那么它本身就附带提供了Windows Installer。现在是你熟悉和使用它的时候了。
以上就是关于如何使用InstallShield制作安装程序全部的内容,包括:如何使用InstallShield制作安装程序、如何为自己编写的应用程序制作Windows安装包、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)