2023年12月6日发(作者:)
InstallShield学习笔记
调试项目
Revision History
DATE
REVISION AUTHOR
DESCRIPTION
Table of Contents
1
2
前言 .................................................................................................................................................................................... 1
编译(COMPILE) ......................................................................................................................................................... 2
2.1
2.2
2.3
3
编译选项设置 ............................................................................................................................................................. 2
编译功能导航 ............................................................................................................................................................. 3
编译信息输出 ............................................................................................................................................................. 3
调试(DEBUG) .............................................................................................................................................................. 4
3.1
3.2
3.3
3.4
3.5
调试选项设置 ............................................................................................................................................................. 4
调试功能导航 ............................................................................................................................................................. 5
调试功能介绍 ............................................................................................................................................................. 6
调试信息输出 ............................................................................................................................................................. 7
在客户终端机上调试 ................................................................................................................................................. 7
4
构建(BUILD) ................................................................................................................................................................ 8
4.1
4.2
构建单个EXE文件 ................................................................................................................................................... 8
批处理构建 ................................................................................................................................................................. 8
5
版本(RELEASE) .......................................................................................................................................................... 9
5.1
版本向导(RELEASE
WIZARD) ..................................................................................................................................... 9
1 前言
本文档是笔者在学习InstallShield IDE的过程中,查阅InstallShield 2009 IDE的联机帮助,结合个人学习心得体会,写出的学习笔记。鉴于篇幅有限,本文仅就InstallShield IDE提供的编译,调试,和构建功能作了一些基本介绍,仅供新手入门作参考之用。
若读者有意深入研究高级进阶内容,请参考InstallScript IDE(集成开发环境)自带的联机帮助,或者在网上搜寻参考资料 ( 附:InstallShield社区论坛:,
/?f=133)。
1 2 编译(Compile)
2.1 编译选项设置
用户可以先在InstallShield IDE中定义编译相关设置,请注意这些设置仅对当前被打开的项目有效。
用户从Build菜单列表中选择Settings菜单项,然后在弹出的对话框里打开Compile/Link 标签页,
如下图所示:
对于上面对话框中各设置项的作用,下表作了详细说明:
属性名 属性值(例子) 使用说明
Preprocessor USAGE = “Internal”
设置预处理常量。
Defines
此例中定义了名为USAGE的常量,可以在编译时直接被脚本文件使用。
比如在主脚本中可以这样用:
#ifdef USAGE
//
执行一些代码
#endif
Include Pathes
指定上面的预定义值的使用范围,
C:IS_ProjectsAAScript Files
在这里指定的路径下面的所有script文件,都可以引用该值
(注:多路径用逗号隔开,允许嵌入路径相关的变量)
Maximum 50
指定最多显示的警告(warning)的条Warnings
数,此例中设为50条
Warning Level
选择以下列表项目之一: None - 不显示警告消息。
None,Level 1,Level 2,或Level 1 – 显示InstallShield不能处
Level 3 (默认) 理的任何系统警告。
2 Level 2 – 显示Level 1消息,如果字
符串长度超过限制则追加另一条消息。
Level 3 (默认) – 显示所有警告消息
指定最多显示的错误(error)的条数,此例中设为50条
若选中,在build release之前会自动编译脚本
若选中,会把警告(warning)当成错误(error)来处理。那么当script编译时有警告时,InstallShield不会继续执行下去
若选中,安装脚本中创建的对象的调试信息将在编译时被打包进安装程序中(一般仅用于开发阶段)
指定编译时需要链接的对象库文件(*.obl)的完整路径(允许嵌入路径相关的变量),若有多个路径则用逗号隔开
Maximum Errors
Compile before
build
Warnings as errors
50
选中,或不选中该复选框
选中,或不选中该复选框
Generate inline
debugging
information
Libraries(.obl)
选中,或不选中该复选框
后缀为.obj文件的路径
2.2 编译功能导航
当开发者改动了项目的setup script后,可以先编译此项目,以及早发现脚本语法错误及其它的配置问题。
在项目已经打开的情况下,开发者可以从Build菜单列表中选择Compile菜单,或者在工具条上点击Compile
按钮,从而启动编译当前项目。如下图所示:
2.3 编译信息输出
当编译完成后,InstallShield IDE下面的输出窗口(Output Window)中的Compile标签页会打开,
显示编译输出的文本信息(成功或者失败),如下图所示的Compile窗口输出:
3 当本次编译失败时,毗邻的Tasks标签页会列出出错的代码行号和源头。当用户可以双击其中某一行时,
脚本编辑窗口(Script Editor)自动跳转定位到脚本中的该行,如下图所示的Tasks窗口输出:
3 调试(Debug)
3.1 调试选项设置
用户可以先在InstallShield IDE中定义调试相关设置,请注意这些设置仅对当前被打开的项目有效。
用户从Build菜单列表中选择Settings菜单项,然后在弹出的对话框里打开Run/Debug标签页,如下图所示:
4 下表详细说明了该对话框中各设置项的作用:
属性名 属性值(例子) 使用说明
Setup Command
其值可以是任何一个字符串。 这里输入的字符串会保存在系统变量Line Arguments
比如此例中输入的是自定义的CMDLINE中,通过InstallShield运一串选项值 行的安装可以直接调用其值。开发者
一般用它来定义一些开关类选项,控制setup script的行为。
Generate MIF File
选中,或不选中该复选框 若选中,通过InstallShield运行安装时,会生成一个管理信息格式(.mif)的文件。
(注:当此复选框选中时,后面两个文本框会被激活)
MIF Filename
MIF文件的文件名 这里输入的文件名(.mif)会在InstallShiled运行安装的时候产生。
若留为空,默认文件名为
Product Serial
产品序列号 这里输入的序列号会写入上面生成
Number
的.mif文件中
3.2 调试功能导航
InstallShield IDE提供了一个代码级别的调试器,可以供开发者深入脚本代码内部,去定位错误或
者输出调试信息。
开发者可以从Build菜单列表选择Debug菜单,或者按下键盘上的F5按键,从而启动脚本调试器。
5
3.3 调试功能介绍
当开发者点击了Debug菜单或者按钮后(见3.1 调试功能导航所示图片),InstallShield IDE首先会build出安装程序,然后弹出调试器窗口供开发者使用,其界面如下:
调试器窗口工具栏上有一些用于调试的功能按钮(在Debug菜单列表中也可以找到对应的菜单项)。
各功能按钮的用途详见下表:
按钮图标 按钮名称 按钮功能
Open
点击按钮,选择并打开本地磁盘文件,浏览其内容
Toggle Breakpoint
点击按钮,在光标所在行添加断点;
若该行已有断点,点击此按钮将取消它
Go
点击按钮,调试器会运行脚本代码到下一断点处停止
Break
点击按钮取消正在运行的调试。
此按钮跟上一按钮是互斥操作。
Step Into
点击按钮执行下一行语句。
如果该行调用了用户自义函数,调试器也会
步入该函数体逐步执行
Step Over
点击按钮执行下一行语句。
如果该行调用了用户自义函数,调试器不会
步入该函数体,而是在该函数被调用完之后
的一行继续执行
Step Out
点击按钮从当前被调用的函数体中内部跳
6
出。比如开发者先使用Step Into按钮
入了一个函数体内部,然后可以点击此
步
Step Out按钮从该函数体内部跳出到外面
调用行,继续执行
Show Next Statement
点击按钮显示当前脚本中下一处声明
(我们在Degger窗口中滚屏浏览代码后,
可点击此按钮快速定位到当前脚本的执行处)
3.4 调试信息输出
调试器窗口下部有两个窗口,在脚本被执行期间,它们会实时显示相关输出信息。
Local窗口实时输出当前被执行函数(自定义)内部的所有局部变量(local variables)的值。
该窗口里面的信息只可读,不可修改。见下面左图.
Watch窗口实时输出用户自行添加的监控项(watch)的值,观测项可以是变量名或常量名,
用户可以通过右键菜单添加或者在表格中直接输入。见下面右图.
3.5 在客户终端机上调试
前面的四小节(3.1~3.4),我们讨论的是在开发者本机上利用InstallShield IDE的调试方法。
在现实情况下,我们编译出来的的安装程序在本机上测试正常,然而发布给客户后,
在客户的终端机器上却出现各种问题。
因为客户机器上面一般没有安装InstallShield IDE开发环境,我们也不可能用开发者常规的方式来进行调试,
这时候我们就要使用下面的步骤进行在客户机器上进行现场调试:
1. 从开发者本机上InstallShield安装目录System下面,找到名为程序,拷贝到将要执行调试的客户机器上面的任一文件夹(注:在该目录下有其帮助文档,可以一并拷贝过去,以便客户参考)。
2. 接着在客户机器上面,打开一个命令行窗口,敲入下面的命令来注册这个exe程序(假设其目录为C:debug):
7 C: REGSERVER
3. 在开发者本机上编译并构建安装程序(若以前已经构建过,此步可以省略)。
4. 从开发者本机上找该项目构建出来的文件夹(包括Disk Images子文件夹),拷贝到将要执行调试的
客户机器上的任一文件夹。
例如,假设开发者本机上该项目的根目录是:C:IS_ProjectsAGIS,那么要拷贝的文件夹是C:IS_ProjectsAGISMediaSINGLE_EXE_IMAGEDisk ImagesDisk1
(注:以上路径中最后一层Disk1,在实际情况下可能是Disk2,Disk3等等,请酌情选择。
另外,如果开发者机器上的目录可以共享给将要执行调试的客户机器,这一步可以省略)
5. 在客户机器上,打开一个命令行窗口,使用/d参数调用安装程序(比如),该参数后面紧跟将要生成的log文件的路径,比如下面的命令行例子:
C: /d”C:debug”
此时安装程序界面会照常弹出,供客户操作完成安装。同时InstallShield的Debugger窗口也会显示,并随着客户在安装程序界面上的操作,该窗口会实时显示当前执行的代码,并输出当前的局部变量,当然客户也可以自己添加的监控项(参见3.4
调试信息输出)
4 构建(Build)
4.1 构建单个EXE文件
在项目编译没有错误发生的情况下,我们可以构建出最终的可执行型安装程序(*.exe)。
这个操作非常简单,用户可以在Build菜单列表中选择Build 或Refresh Build,然后等待项目编译和构
建完毕,在项目的$MediaSINGLE_EXE_IMAGEPackage目录下会看到生成的EXE文件,见下图:
(注:Build会执行完整的构建,而Refresh Build只会重建上次build之后被修改的部分)
4.2 批处理构建
用户也可以使用批构建(Batch Build)方式,一次构建预先定义的各个版本(release)和单个的EXE程序文件。
在InstallShield IDE中,打开Build菜单列表,选择Batch Build菜单项,然后会看到如下左图所示的对话框。
勾选之后,点击Build按钮,即开始了批构建。完毕后,在项目的Media文件夹下面可以看到各自生成的
子文件夹,如下右图所示:
8
5 版本(Release)
在安装程序被发布给测试人员或者最终用户之前,开发者应该创建一个对应的版本(release)。
一个版本配置了一些安装相关的信息,也包含了将被发布到软盘,光盘,文件夹,或者其它媒介载体上的
文件。
创建版本最常见的方式是使用InstallShield IDE自带的版本向导(Release Wizard)。
5.1 版本向导(Release Wizard)
版本向导(Release Wizard)是InstallShield提供的一个辅助功能,它提供了十五个连续的配置页面,
引导用户逐步填入各类配置信息,最后根据收集的配置信息生成该版本所包含的数据文件和执行文件,
这些文件可以被直接打包发送给最终用户,或者烧录到光盘等媒介载体作为安装盘。
在InstallShield IDE界面上,点击菜单栏上的Build菜单,然后在其展开的列表中点击菜单(或在工具栏上
点击按钮), 此时版本向导对话框会弹出。
下面我们对它的十五个配置页面逐一说明(注:某些配置页面仅在某些特定类型的安装项目才出现):
1. 第一个页面,是Welcome页面,请直接点击Next按钮进入下一页面。
2. 第二个页面,是Specify a Release页面,可以输入一个新release name或者选择现有的某个release。
3. 第三个页面,是Media Type页面,可以选择CD-ROM, Custom, Network Image等作为此版本发布使用的媒介载体(注:如果选择的类型是Custom,页面下面的Format Size文本框会激活,供用户输入)
4. 第四个页面,是General Options页面,配置安装程序的一些属性信息。
5. 第五个页面,是Password页面,允许设置一个密码,在安装程序运行之前会要求用户输入该密码并验证。
6. 第六个页面,是Platforms页面,选择安装程序支持的所有操作系统平台。
(注:如果安装程序中的某个component关联的平台,没有在这个页面选中,那么该component不会被打包到这个release中)
7. 第七个页面,是Setup Languages页面,选择安装程序支持的所有语言,从而最终用户在运行该安装程序时可以选择以某种语言安装。
8. 第八个页面,是Features页面,选择需要打包进安装程序的features。
9. 第九个页面,是Media Layout页面,选择以Cabinet File, CDROM Folder, 或Custom格式来打包features所包含的文件。
(注:若选择Custom,下一页面会是Custom Feature Layout,跟第八个页面类似,此处不表)
10. 第十个页面,是User Interfaces页面,选择某个皮肤文件(*.skin),应用给安装程序。
11. 第十一个页面,是Internet Options页面,配置安装程序在被运行时跟internet相关的一些选项。
12. 第十二个页面,是Digital Signature页面,可以为安装程序添加数字证书。
13. 第十三个页面,是Update页面,配置以Update模式运行安装时的行为,可以选择全部重新安装,或者只
安装此页面中被选择的组件。
14. 第十四个页面,是Postbuild Options页面,配置当前build完成之后额外执行的一些动作,比如上传拷贝一
些文件,执行批处理脚本等。
9 15. 第十五个页面,是Summary页面,汇总显示了前面所有页面收集的配置信息。
若确认没有问题,可以点击Finish按钮开始创建release (选项Build the Release选择应该被勾选上);
若想修改某部分配置,可以点击Back按钮回退到对应页面进行修改。
10


发布评论