Installshield 12 中文系列教程 之 Basic Msi项目(二)
声明:本文为《打包技术网》原创,转载请保留此声明并注明出处,仅供网友学习使用,勿用于商业用途。
作者:棒槌_007
联系方式:QQ 113984419 MAIL:bangchui_007@126.com
说明:本人E文实在一般,文中有翻译不准确的地方,请各位见谅。
×××××××××××××××××××××××××××××××××××××××××××××××
第二步:快捷方式和注册表数据
这一步解释了如何使用IDE :
- 创建程序快捷方式
- 创建注册表信息
创建快捷方式
你可以在Shortcuts 视图中建立修改快捷方式。快捷方式的属性包括它显示得名,它的目标执行文件和参数,和它显示的图标。
在这个步骤中你将在开始菜单的程序文件夹中为 Tutorial App 创建一个快捷方式。
1.打开Shortcuts视图。Shortcuts视图位于System Configuration区的视图列表中。
2. 右键单击 Programs Menu 文件夹图标,选择 NewAdvertised Shortcut ,这时会弹出一个 Browse for aComponent 对话框。3.在对话框中,从Feature 下拉菜单中选择Tutorial_Files,并从文件列表中选择Tutorial.exe,单击Open 关闭对话框。
4. 用内部名字为快捷方式重命名,象 Tutorial5.设置快捷方式的下列属性:
特性 | 值 | 备注 |
Display Name (显示名称) | Tutorial Application | 为了适应目标系统不支持长文件名,IDE将创建一个包含短文件名的表达式,象“TUTORI~1|Tutorial App”。如果你想,你可以改变表达式的短文件名部分,比如“TUTORIAL|Tutorial App” |
Description (描述) | Launch the Tutorial application(执行Tutorial应用程序) | 在Windows2000或以后的系统中显示为一个工具提示。 |
Advertised (建议,通知,广告) | YES | 在运行时,如果用户宣传这个产品或者功能部件包括这个快捷方式,但是直到用户运行快捷方式,构件中的文件才会安装。 |
Target(目标) | 宣传的快捷方式目标[INSTALLDIR]Tutorial.exe | 自动的为一个构件的关键文件设置一个宣传的快捷方式 |
Icon File(图标文件) | <TutorialSource>/Tutorial.exe | 在源位置浏览Tutorial.exe,并选择它的惟一图标 |
Icon Index(图标索引) | 0 | 如果一个可执行文件的资源中包含多个图标,这个图标索引确定一个特殊的图标作为默认使用的。 |
Working Directory(工作目录) | [INSTALLDIR] | 工作目录应该设置为你另存为和打开对话框的默认目录。 |


技巧:要为一个用户机器上已有的文件创建快捷方式,输入文件的路径即可,可以使用系统变量来表示文件的路径。比如,要使用用户Windows或着WinNT目录的Windows Notepad程序,输入快捷方式的目标为 <WINDIR>/ Notepad.exe 。
创建注册表数据
应用程序的另一个公共需求就是要向目标系统的注册表中写入信息。要为一个构件添加注册表数据,你可以使用Registry(注册表)视图。
例如,要在HKEY_LOCAL_MACHINE/Software/TutorialCo/Tutorial/1.00.0000下面添加一个注册表项叫做TutorialData :
要建立这个注册表项:
1.切换到Registry视图,Registry视图位于SystemConfiguration区域的View List
2. 从视图顶部的 View Filter 中选择 Tutorial.exe3.在Destinationcomputer's Registry视图面板中的HKEY_LOCAL_MACHINE处单击右键,选择New指向Key
4. 重名这个键为 SOFTWARE5.重复这个过程建立相应的子键Tutorial Co, Tutorial, and 1.00.0000
6.在Destinationcomputer's Registry数据面板中,单击右键选择New String Value
7. 重名这个值为 TutorialData8.双击这个TutorialData值,然后在取值区域内输入[INSTALLDIR]
注册表视图应该象下图:


技巧:要把一个Windows Installer" onclick="tagshow(event)" class="t_tag"> Installer 特性值写入到注册表中,你可以使用[PropertyName] 。在本例中,创建一个数据为[INSTALLDIR] 的注册表数据把INSTALLDIR 的值写入到注册表中。
在运行时,如果最终用户选择一个安装类型或者自定义的功能部件中包含Tutorial.exe文件,这个注册表值就会添加到目标系统中。
验证创建的快捷方式
要验证你的安装程序创建的快捷方式:
1、重新编译你的项目,使用工具栏Build按钮或者按F7键
2、 运行项目,使用 Run 按钮或者按 Ctrl+F5 (首先需要从你的系统中卸载已经存在的版本)。这时在你的 Start (开始)菜单中的 Programs 程序目录中将会出现一个Tutorial App 的快捷方式。验证创建的注册表数据
要验证你的安装程序创建的注册表数据:
1、通过快捷方式来运行Tutorial App
2 、从 Tutorial 菜单中选择 VerifyRegistry Data (验证注册表数据)。如果这册表的数据已经创建了,那么将会弹出一个对话框显示 <TARGETDIR> 的内容。在教程中的下一个步骤中将会说明如何注册一个COM服务(自注册文件)。
第三步:注册 COM 服务程序
对于大多数文件,安装程序只需要从源安装介质拷贝文件到目标系统。另外的一下,安装程序也只需要在目标系统中注册这些文件。一些特别的文件种类,需要额外的处理是一个selfregisteringfile(自注册文件)。一个COM服务程序通常是DLL文件或.ocx文件,它所需要的附件信息在应用程序和WEB页面使用这个自注册文件之前会被写到目标系统的注册表中。
创建一个COM服务程序构件
要安装注册这些或者其它类型的文件,你可以使用Component Wizard(构件向导)。这个Component Wizard创建构件,复制文件执行附加的注册步骤。在这个步骤中,你将创建一个构件来安装和注册它用到的Tutorial.ocx和一个HTML文件。
要创建一个COM 服务程序构件:
1. 打开 Files and Folders 视图。
2. 在 Files and Folders 视图的顶部,从选择 Add newcomponents to the feature 菜单中选择Tutorial_Files 功能部件
3. 在 Destination computer's folders 面板中,右键单击 [INSTALLDIR] 目录并选择 LaunchComponent Wizard


4. 在 ComponentWizard 的 Welcome 面板,选择“Let me select a type and define the component myself (让我自己选择类型定义构件)”选项,单击NEXT


5. 在 Component Type 面板中,选择 COM Server 图标,在 ComponentName 字段输入 Tutorial.ocx , 单击 NEXT


6. 在 COMServer—Destination 面板中,验证目标设置的是[INSTALLDIR]


7. 在 COM ServerFile 面板中,单击 COM Server File 区域旁边的浏览按钮在tutorial 的源文件目录中找到Tutorial.ocx ,单击 Next


8. 在Component Wizard 收集了COM 的信息后,检查COM 的信息然后单击 Finish 创建构件。


下一步是为刚建立的构件添加HTML文件。
要为Program Files功能部件的新构件添加HTML文件:
1、在Destination computer's folders面板中的Files andFolders视图中,选择新Tutorial.ocx 构件。
2、 把TutorialCtrl.html 从 Source computer's files 视图中拖动TutorialCtrl.html 到 Destinationcomputer's files 面板 中。3、确认Tutorial.ocx已经在它的构件文件中标记为关键文件。
确认COM服务程序已经注册
重新编译你的版本(按F7),运行安装程序(按Ctrl+F5),你可以验证那些文件是否适当的注册了。
1、从开始菜单中找到Tutorial App的快捷方式或双击它的图标来运行程序。
2、 从 Tutorial 菜单中 选择 COM Server 测试3、如果COM服务程序已经注册正确,那么HTML页面将显示“success”信息。
这个Component Wizard(构件向导)也能创建一个安装构件配置字体或Windows NT 服务。
在教程的下一步中将示范如何有条件的安装文件。
第四步:条件和特性
安装程序一个公共的需求就是只有当目标系统满足特定条件时才安装指定的文件。例如,文件可能被指定到操作系统或语言,或应只能在用户如果有适当的权限时安装。
要在一个指定的操作系统中安装一个构件(文件和其他数据),你可以使用构件的操作系统属性。你可以打开Setup Design视图,展开相应功能部件找到相关的构件,来修改构件的属性:
1、切换到Setup Design 视图
2、 右键单击 HelpFiles 功能部件,选择 New Component3、重命名这个构件为windows_nt_files
4、 展开 Windows_NT_Files 构件, 单击构件的 Files 图标,通过右键单击 Files 面板中的源文件目录,找到 ReadmeNT.txt 添加到构件中。5、右键单击 .txt 文件选择Set Key File
6、 单击 windows_nt_files 构件显示构件的属性列表7、选择构件的Condition(条件)属性,单击浏览按钮打开ConditionBuilder对话框。
8、 创建下列条件: VersionNT>=500 。要了解创建条件的详细信息,参考 Building Conditional 部分。
9、单击OK关闭ConditionBuilder对话框,完成添加条件
在重新编译(按F7)运行(按CTRL+F5)后,如果目标系统是 Windows 2000或者更高的操作系统,那么构件包含的文件和其他数据都将安装。
Windows 安装程序条件
Windows 安装服务存贮关于安装程序的一些通用性信息和关于用户操作系统的属性。一些属性建立在你的MSI 数据库的属性表中,还有一些在用户运行应用程序时由Windows 安装程序引擎创建。
共用的条件属性包括:
- 管理员用户,这个是设置你的安装程序运行时是否具有管理员权限(Windows 9x系统中必须设置为管理员权限)
- VersionNT 和 Version9X,用数字描述用户运行程序的操作系统及其版本
- PhysicalMemory(物理内存),包含用户系统中的RAM总数以MB计算
一个 Windows Installer 条件是一段逻辑语句,用来比较属性值是否与固定值的关系,或者判断一个属性是否存在。例如, Windows 安装程序定义了一些属性 ScreenX 和 ScreenY ,是包含用户显示器的分辨率像素值。一个 Windows 安装程序的条件是检查这个用户的分辨率最低时 800 × 600 ,( ScreenX >=800 , ScreenY >=600 )。
条件也可以测试一个属性是否定义了。例如,管理员属性只有在用户使用管理员权限的时候才会设置,而探测一个用户是否具有管理员权限的条件就是 “ AdminUser ”。
要创建一个只有在用户有管理员权限的时候才安装的构件:
1. 右键单击 Help_Files 功能部件选择 New Component
2. 重命名这个部件为 Admin_Component
3. 展开 Admin_Component 构件,单击 Files 图标
4. 从 tutorial 文件的源目录中添加 AdminOnly.txt ,并将它设为这个构件的 key file (关键文件)


5.单击这个构件Condition属性按钮,显示ConditionBuilder对话框
6.在ConditionBuilder对话框中的Condition(s)区域输入AdminUser
7.单击 OK


在安装程序运行时,只有用户拥有管理员权限这个构件才会安装。
教程的下一步中将描述如何修改安装程序的用户界面。
第五步:更改最终用户界面
这个步骤列举了你可以修改安装中的用户界面的两个办法:
1、指定安装期间显示的对话框
2、 使用 Dialog Editor (对话框编辑器)来修改对话框的布局和特性添加一个新的对话框
Basic MSI 项目包含多种对话框你可以用在安装程序的用户界面中显示。在教程中 Running Your Installation 的部分中显示的对话框,就是基于项目助手中的安装体系结构页中定义的。
要创建一个新的对话框:
1. 打开 Dialogs 视图。


2.右键单击All Dialogs节点选择New Dialog 。开始执行对话框向导。在Welcome面板中单击Next 继续


3.在DialogTemplate 面板中,选择Interior.isd并选择Insert this dialog in a User Interface sequence 选项


4.在User Interface 面板中,从用户界面的菜单中选择Installation 并选择对话框列表中的InstallWelcome。根据这些选择,InstallShield将立即按顺序在Install Welcome 对话框后插入一个新的对话框


5.在DialogPosition和Condition 面板中,保留默认设置,然后单击Finish 。新建的对话框就出现在Dialogs 列表中。


6.右键单击这个对话框选择Rename 。重命名这个对话框为WelcomeBitmap


用同样的方法你可以在安装程序的用户界面中插入更多的对话框。
在对话框编辑器中修改对话框布局
Dialog Editor (对话框编辑器)允许你修改显示你的安装程序中对话框外观。
在这个步骤中,你将修改刚刚创建的 WelcomeBitmap 的对话框:
1. 首先,创建一个 300 × 150 大小的位图文件 (.bmp)
2. 打开 Dialogs 视图
3. 展开 WelcomeBitmap 对话框节点。单击 English (United States) 打开 Dialog Editor
4. 单击对话框顶部的 Dialog Bold Title 文本框。在 Text 区域,输入 WelcomeBitmap 更改对话框的主标题。
5. 单击对话框顶部的 Dialog Normal Description 文本框,在 Text 区域,输入 Displays mywelcome bitmap 更改这个对话框的描述
6. 单击 DialogControl 工具栏上的 Bitmap 按钮,用鼠标拖动外框,把它设置成高 150 宽 300 像素。
7. 在 File 区域浏览第一步中创建的 bitmap 文件


在重新编译运行后,在Install Welcome dialog后将出现Welcome Bitmap dialog。