如何使用InstallShield制作安装程序
1、使用InstallShield Express创建安装程序
建立安装工程是建立安装程序的第一步。使用InstallShield Express建立的工程文件(.ism)是基于Windows Installer工程文件的,该文件存储所有的逻辑和必要的信息来建立一个与Windows Installer兼容的安装程序。
⑴、建立安装工程
① 首先打开InstallShiled Express。
② 在File(文件)菜单上单击New(新建)选项来打开New Project(新建工程)对话框。
③ 在Project Name and Location(工程名和位置)框中选定要保存的工程的位置,并重新命名默认得工程名,然后单击OK(确定)按钮。
④ 如果要建立英语语言之外的安装程序,可以在Project Language(工程语言)列表框中选择一个相应的替代语言。例如,如果要在安装程序对话框中使用简体中文文字,必须将语言设置为Chinese(Simplified),否则安装期间对话框的中文将会变成乱码。
需要注意的是,在选择了一种语言后,不能再进行修改。
⑵、定义工程属性
在建立一个安装工程之后,可以定义工程的属性,如:
● 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(常规信息)。
② 编辑属性列表中的各字段值。
⑶、划分产品功能
从应用程序用户和InstallShield Express的整体看,一个功能可以被作为一个应用程序的组件。该功能为用户部分安装应用程序提供了可能。例如,在Visual FoxPro安装期间,可以指定是否安装作为功能组件的Visual FoxPro示例和Visual FoxPro工具。
注意:在创建一个安装程序时,划分产品功能并不是必要的,尽管这对用户有帮助。
安装功能的默认设置是Always Install(总是安装),新建一个功能的步骤如下:
① 在Organize Your Setup(组织安装文件)节点下单击Features(部件)。
② 添加一个新功能,在窗格中间的树形视图的Features(部件)节点单击右键,然后单击New Feature(新建部件)。
③ 输入一个新部见名称并回车。
在确认产品部件后,可以设置部件属性,例如部件描述、部件如何被发布,以及部件是否为必须等。
设置部件属性的步骤如下:
① 选定要修改属性的部件。
② 在属性列表中,单击或双击属性的字段值来编辑该值。要显示更多选项,单击右边的“…”或下拉箭头按钮。
③ 为属性输入或选择新值。
例如,要想提供安装应用程序帮助文件的安装选项,下面的步骤将建立该部件,并命名为“帮助文件”。如果要使“帮助文件”在安装时可选,要设置Required(必需的)属性为No(否)。如果你希望在用户第一次通过按F1使用帮助时,常使调用该功能,并提供用户进行安装,应当设置Advertised(做广告)属性为Allow Advertise(允许广告,即可选择“在首次使用时安装”)。
⑷、为安装类型指定部件
在一个安装程序中可以包含不同的安装类型并可以指定哪个功能对应于哪个要安装的类型,安装类型提供了不同的安装级别来允许用户进行选择。
●“典型安装”安装所有部件和文件
●“最小化安装”仅安装应用程序所必须的部件和文件的最小数量
●“自定义安装”可以由用户指定哪个部件要被安装
应当至少包含一个安装类型。例如,一个基本的安装程序应当包含由“始终安装”和“典型安装(&T)”类型列出的其它部件,在安装类型名称中的“&”表示在安装程序用户界面中一个特定安装类型的快捷键,用户可以包含或移除安装类型(只要剩余一个可用),或重命名安装类型。
选择安装类型并为每个安装类型指定部件的步骤如下:
① 在Organize Your Setup(组织安装文件)节点下点击Setup Types(安装类型)。
② 在Setup Types窗格中选择你要包含的安装类型。
③ 在Features installed for
在这些设置中,我们将3种安装类型全部选定,在为安装类型指定部件时,只在“最小化安装”类型中去除了对帮助文件部件的选择。
⑸、添加文件到安装程序
可执行文件(.exe)通常用于为用户启动应用程序,可以首先添加该文件和应用程序所需要的其它文件,其次是一些可选文件。
Visual FoxPro提供扩展应用程序功能性的资源文件,包括FoxUser资源文件、API库和Microsoft ActiveX控件,如果要使用这些文件,应该将它们添加到安装程序中,方法如下:
① 在Specify Application Data(指定应用程序数据)节点下单击Files(文件)。
② Files(文件)窗格被分为四个部分,左边显示源文件夹和目标计算机文件夹,右边显示这些文件夹中的文件。
在向安装工程添加文件前,应当选择Features(部件)下拉列表框来指定与部件相关联的文件。
在Features(部件)下拉选项框内选择相应的部件之后,可以通过从源文件夹复制或拖曳文件到目标计算机文件夹内来向安装工程添加文件。
从源文件夹向目标文件夹添加文件的步骤如下:
a、在Destination Computer’s folders(目标计算机的文件夹)窗格内,选择要安装应用程序的目标目录。
b、在Source computer’s files(源计算机的文件)窗格内,拖曳源文件到目标目录。
注意,文件夹由General Information(常规信息)节点的INSTALLDIR属性指定,作为默认安装目录出现在Destination computer’s folders(目标计算机的文件夹)窗格内。拖曳源文件到目标文件夹仅通知InstallShield Express在创建安装程序时在哪里能够找到这些文件,并不从源计算机上移动或撤销移动任何文件。
将帮助文件Ping_Help.CHM放在“帮助文件”功能中,其他文件则全部放在“始终安装”部件中。
也可以查看预定义文件夹列表,从中选择并添加到目标计算机文件夹列表中,查看并添加于定义文件夹的方法如下:
a、在Destination computer’s folders(目标计算机的文件夹)窗格内,在Destination computer(目标计算机)上单击右键。
b、单击Show predefined Folders(显示预定义文件夹)。
c、选择要添加的文件夹。
所选择的文件夹将出现在目标计算机文件夹列表中,也可以在目标文件夹中建立一个或多个子文件夹。在目标文件夹内建立子文件夹的方法如下:
a、在目标文件夹上单击右键,然后选择Add(添加)。
b、为新文件夹输入一个名称并回车。
选定文件后,对某些文件要选择注册类型,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(自我注册)。
⑹、选择对象和合并模块
一个合并模块(.msm文件)包含所有的逻辑、注册表项目和需要安装的应用程序文件或运行时间库文件。如果手工安装应用程序,需要复制Visual FoxPro运行时间库到目标计算机并注册,不过,如果选择了Microsoft Visual FoxPro 8 Runtime Libraties合并模块,InstallShield Express会为你正确的复制并注册运行时间库文件。
对于Visual FoxPro应用程序,至少应该选择Microsoft Visual FoxPro 8 Runtime Libraties和XML 4.0组件。
注意,当选择了Microsoft Visual FoxPro 8 Runtime Libraties组件,Microsoft Visual C++ Runtime Libraties 7.0和GDI Plus Redist组件将被自动选定,Visual FoxPro 8.0必需这些组件,因此,请不要清除对这些选项的选定。
为安装程序选择对象和合并模块的步骤如下:
① 在Specify Application Data(指定应用程序数据)节点下单击Objects/Merge Modules(对象/合并模块)。
② 在InstallShield Objects/Merge Modules(InstallShield 对象/合并模块)窗格中,选中你要安装的合并模块前面的复选框。
③ 当Conditional Installation(安装条件)窗格中的选择框可用时,可以为部件指定安装相应的合并模块。
在该步骤中,选择了Microsoft Visual FoxPro 8 Runtime Libraties、Microsoft Visual C++ Runtime Libraties 7.0、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(6.0)模块。之所以选择Microsoft Windows Common Controls(6.0),是因为应用程序所使用的StatusBar(状态栏)包含在该模块中,这是与Visual FoxPro 6.0安装向导不同的地方,至于组件中所包含的控件列表,请参考下面Visual FoxPro发布方案中的表1。
⑺、建立快捷方式
InstallShield Express允许在“开始”菜单和“桌面”中建立快捷方式和文件夹。
建立文件夹或快捷方式的步骤如下:
① 在Configure the Target System(配置目标系统)节点下单击ShortCuts/Filders(快捷方式/文件夹)。
② 在中间窗格的Shortcuts(快捷方式)树形视图上,在你要放置快捷方式的节点上单击右键,然后选择New Shortcut(新建快捷方式)或New Folder(新建文件夹)。
③ 如果建立一个快捷方式,应当为该快捷方式指定一个目标文件,在出现的Browse for Shortcut Target(浏览快捷方式目标)对话框中,在Look in(搜索)列表中双击你要建立快捷方式的文件。
④ 输入快捷方式或文件夹的名称,然后按回车键。
重命名文件夹或快捷方式,在名称上面单击右键,然后单击Rename(重命名),输入新名称后回车。
在该项设置中,为示例程序在“程序”菜单中建立了一个“网络监测小精灵”程序组(即新建文件夹),并在其下面建立了“小精灵”和“使用帮助”两个快捷方式,同时也在桌面上建立了一个“小精灵”快捷方式。在建立快捷方式时,必须将Working Directory(工作目录)属性设置为INSTALLDIR,否则,如果你的应用程序在调用数据库时没有指定绝对路径(程序设计时,不建议使用绝对路径,因为程序在安装时,用户可能将程序安装于其它目录中),则会提示找不到数据库。
⑻、建立注册表项
如果你的应用程序使用注册表项,例如,要跟踪用户权限,InstallShield Express可以在安装期间添加这些到目标计算机中,如果这些项在开发计算机中不存在,可以手动建立他们。
注意,建立注册表项在创建应用程序时不是必须的。
注册表项被建立在注册表主键中,注册表主键根据功能对注册表项进行分类,例如,COM服务器类存储在HKEY_CLASSES_ROOT注册表主键处;软件选项,如Visual FoxPro选项,存储在HKEY_CURRENT_USER主键中的Software子键下。
建立注册表项的步骤如下:
① 在Configure the Target System(配置目标系统)节点下单击Registry(注册表)。
② 在Destination computer’s Registry View(目标计算机的注册表视图)窗格内,在要创建注册表项的的注册表主键上面单击右键。
③ 在出现的快捷菜单上,指向New(新建)并单击Key(项)。
④ 输入项的名称并回车。
⑤ 在所建立的新项上单击右键,指向New(新建),并选择要添加的值的类型。
⑥ 在Destination computer’s registry data(目标计算机的注册表数据)窗格中双击一个项来输入数据值。
⑼、建立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编辑后将文件另存为这种格式。
我们的示例安装程序对于此步骤的设置。
⑾、编译安装程序
在完成安装工程的所有要素(包括部件、文件、快捷菜单、注册表项和用户界面)的设计属性设置后,就可以编译安装程序了。
通常这样的编译类型为CD-ROM或SingleImage(单个映像),选择CD-ROM编译成的安装程序包含有目录结构的文件组织形式,选择SingleImage(单个映像)则把所有文件整合到一个单独的文件中,类似安装向导的网络安装方式。
编译安装程序的步骤如下:
① 在Prepare for Release(准备发布)节点下单击Build Your Release(编译安装程序)。
② 在Build(编译)树形视图中选择要建立的介质类型。
③ 在属性列表中,设置或编辑编译属性。
④ 要编译安装程序,在所选择的介质类型上单击右键,然后单击Build(编译)。
InstallShield Express将把编译好的安装程序存放到下面的文件夹中:
<工程文件夹>\Express\<媒介类型>\DiskImages\DISK1
测试安装程序非常重要,使用InstallShield Express可以不用实际运行安装程序而测试安装程序。
测试的步骤如下:
① 在Prepare for Release(准备发布)节点下单击Test Your Setup(测试安装程序)。
② 在Build(编译)树形视图中选择要测试的介质类型。
③ 如果希望运行安装程序并安装文件到开发计算机中,单击Run Your Setup(运行安装);如果只是想测试安装程序对话框和一些你所选择的自定义行为,单击Test Your Setup(测试运行),该选项不安装任何文件或改变操作系统。
在编译和测试完毕后,你可以准备发布应用程序了。
发布的步骤如下:
① 在Prepare for Release(准备发布)节点下单击Distribute Your Release(发布安装程序)。
② 在Build(编译)树形视图中选择要测试的介质类型。
③ 直接输入或单击Browse(浏览)并选择安装程序要复制到的位置。
④ 当然,也可以复制安装程序到一个FTP服务器上。
至此,示例安装程序也已经制作完毕,该安装程序支持自定义安装。
然后单击Distribute To Location(分配到该位置)。
3、Visual FoxPro 发布方案
该步骤假定只安装了一个简单的Visual FoxPro应用程序,而没有Visual FoxPro Runtime Libraties之外的其他附属。下列信息包含了除只安装Visual FoxPro应用程序和本地数据之外的发布方案所需要的指导。对于这些方案,在为安装程序选择对象和合并模块时可以适当添加。
⑴、Web Services和SOAP
如果你的应用程序使用了Web Services或SOAP,应当包含下列组件:
● SOAP SDK Files(Soap_Core.msm)
● Visual BASIC Virtual Machine(MSVBVM60.msm)
● Microsoft Component Category Manager Library(Comcat.msm)
● Microsodt OLE 2.40(OLEAUT.msm)
● Microsoft Visual FoxPro OLE DB Provider(VfpOLEDB.msm)
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(VfpOLEDB.msm)合并模块。
⑵、ActiveX控件
ActiveX控件是许多Visual FoxPro应用程序的通用要素,你的InstallShield Express安装程序要包含ActiveX控件,应当包含Microsoft Component Category Manager Library(Comcat.msm)合并模块。
① 通用ActiveX控件
这些是由Visual FoxPro和Microsoft Visual Studio附送的通用ActiveX控件,InstallShield Express附送这些控件的大部分合并模块。
有必要的话,可以为需要的控件添加合并模块。例如,如果应用程序中使用了TreeView控件,则应当包含MSCOMCTL.msm合并模块。
合并模块所包含的通用控件的信息如表1所示。
② Microsoft Foundation Class(MFC)控件
一些较旧的控件,例如Calendar控件,使用MFC类库,因此,推荐包含适当的MFC合并模块,如MFC42.msm,作为VBCCE控件,你应当手动添加控件到工程中并进行各种设置。
③ 第三方控件
如果在应用程序中使用了第三方控件,则需要使用InstallShield Express的Registry(注册表)窗口为一些必需的注册需求添加指定的注册表项。
关于第三方控件的更多信息,参考由销售商提供的关于如何以及在哪里安装这些控件的文档。该文档也应该提供一些所需要的附加文件的信息,例如象MFC文件。
表1 合并模块所包含的通用控件
合并模块名称 文件名 所包含控件
Microsoft ADO Data Control 6.0 MSADODC.OCX ADO Data Control
Microsoft Chart Control 5.5 MSCHART.OCX Microsoft Chart
Microsoft Comm Control 6.0 MSCOMM32.OCX MSComm
Microsoft Common Dialog Control 6.0 COMDLG32.OCX CommonDialog
MicrosoftData Bound Grid Control 5.0 DBGRID32.OCX DBGrid
Microsoft Data Bound List Controls 6.0 DBLIST32.OCX DBList、DBCombo
Microsoft Data Repeater Control 6.0 MSDATREP.OCX DataRepeater
Microsoft Data Grid Control 6.0 MSDATGRD.OCX DataGrid
Microsoft Data List Control 6.0 MSDATLST.OCX DataList、DataCombo
Microsoft Flex Grid Control 6.0 MSFLXGRD.OCX MSFlexGrid
Microsoft Grid Control 6.0 GRID32.OCX Grid
Microsoft Hierarchical Flex Grid Control 6.0 MSHFLXGD.OCX MSHFlexGrid
Microsoft Interner Transfer Control 6.0 MSINET.OCX Internet Transfer Control
Microsoft MAPI Controls 6.0 MSMAPI32.OCX MAPIMessages、MAPISession
Microsoft MaskerEdit Control 6.0 MSMASK32.OCX MaskedEdit
Microsoft Multimedia Control 6.0 MCI32.OCX Multimedia MCI
Microsoft PictureClip Control 6.0 PICCLP32.OCX PictureClip
MicrosoftRemoteData Control 6.0 MSRDC20.OCX RemoteData
Microsoft RichTextBox Control 6.0 RICHTX32.OCX RichTextBox
Microsoft SysInfo Control 6.0 SYSINFO.OCX SysInfo
Microsoft TabbedDialog Control 6.0 TABCTL32.OCX Microsoft Tab Control
Microsoft Windows Common Controls 6.0 MSCOMCTL.OCX TabStrip、ToolBar、StatusBar、ProgressBar、TreeView、ListView、ImageList、Slider、ImageCombo
Microsoft Windows Common Controls 2 6.0 MSCOMCT2.OCX Animation、UpDown、MonthView、DTPicker、FlatScrollBar
Microsoft Windows Common Controls 3 6.0 COMCT2.OCX CoolBar1
Microsoft Winsock Control 6.0 MSWINSCK.OCX WinSock
⑶、应用程序使用HTML帮助
Microsoft Visual FoxPro HTML Help Support Library(VFPHTMLHelp.msm)合并模块包含FOXHHELP.exe和FOXHHELPPS.dll文件,该模块用于在应用程序中提供上下文HTML帮助。
⑷、应用程序使用MSAC Components
对于运行在Windows 2000或Windows XP之前的操作系统的Visual FoxPro应用程序,如果应用程序使用了下列数据部件,推荐包含Microsoft Data Access Components(MDAC)合并模块(MDAC25.msm):
● ODBC Drivers,包含Microsoft Visual FoxPro ODBC Driver(VfpODBC.msm)
● OLE DB Provider
● ADO,RDS
⑸、COM服务器
如果产品安装失败,Windows Installer的撤销和Advertising(广告)功能提供了取消部件安装和注册的能力,但是,应当正确的安装和注册COM对象,要正确的注册安装COM对象,应当设置Registration Type(注册类型)为Extract COM Information(提取COM信息),使用Self-registration(自我注册)方式安装COM对象将牺牲Windows Installer的撤销和Advertising(广告)功能。
⑹、局域化应用程序
Visual FoxPro Runtime Libraties(VFP8Runtime.msm)包含标准语言资源文件(VFP8renu.dll),用于所有的英文应用程序,如果要包含支持其他的本地化资源文件(VFP8rxxx.dll),可以适当的包含本地化资源文件的Microsoft Visual FoxPro Resource合并模块。
包含一个本地化Visual FoxPro资源文件的步骤如下:
① 在Specify Application Data(指定应用程序数据)节点,单击Object/Merge Modules(对象/合并模块)。
② 要确认所需要的Microsoft Visual FoxPro Resource合并模块,可以查看在左下窗格中对每个合并模块的描述。
③ 选择需要的合并模块。
表2列出了可用的合并模块及其相应包含的本地化资源文件。
表2 可用的合并模块及其相应包含的本地化资源文件
语 言 合 并 模 块
简体中文 VFP8rchs.msm
繁体中文 VFP8rcht.msm
捷克语 VFP8rcsy.msm
法语 VFP8rfra.msm
德语 VFP8rdeu.msm
朝鲜语 VFP8rkor.msm
俄语 VFP8rrus.msm
西班牙语 VFP8resn.msm