系统环境:windows xp sp2. IS2010premier
先决条件:MSI4.5或以上
1). 首先选择project 类型, 在这个实验里,我们选择 Basic MSI.
2). 在project Assistant处可以填写必要的信息(由于与本文讨论重点无关,不详细提及),点到Installation Designer处。
3).选择Media---Releases
4).有键点chained .msi package, 点新建. 然后改成自己喜欢或者容易记录的名字.
5).点Browse,选择你需要安装的MSI.
6).选择好后,IS会弹出一对话框. (具体意思我就不翻译, 大家自己用点耐心看比较好.)
如果选择是, IS会整合chained package 的MSI到用户将要生成的MSI内部, 选择否, 则不会整合.
在这个例子中笔者选择否.
7).在这里不得不提到一个路径问题, 就是SourceDir.
简单来说SourceDir就是IS project 生成的主MSI所在的位置,换句话说,就是主MSI所在位置.
8). 关于chained package 的参数解释.
1. Product code: 这个选项为MSI的GUID
2.UI level: Basic UI(/qb)---只可以见到MSI的进度条,但伴随着一个取消的按狃
Full UI(/qf)----这个不用说了把
Reduced UI(/qr)---这个就是显示一个安装界面和进度条
No UI(/qn)----没有任何安装界面
3. Install condition: Not Installed 如果该MSI安装过就不安装,还没安装过就安装
4. install properties: 此处填安装msi的参数,例如ADDLOCAL=ALL COMPANYNAME=MS. 但不需要静默安装参数,因为在UI level里面已经选好了,如果不希望被安装的子MSI显示在”添加/删除”中,可在此添加命令ARPSYSTEMCOMPONENT=1
5. Removal condition: 这个跟Install condition一样,保持默认就好
6. Removal properties: 这个是卸载时所需要的参数, 同样,静默参数不需要填写.
值得注意的是, Removal condition里面的参数, REMOVE="ALL" 意思就是 当卸载软件的时候,该MSI就会完全被卸载, 很多情况下我们不希望安装的插件被无情地over,因为很多情况下,系统其他程序可能调用该插件或程序,例如XML6. 这里有个小技巧. 就是将REMOVE="ALL" 改成 Not Installed (注意大小写), 这样就不用担心插件或程序被卸载
详细请见IS官方文档
http://kb.flexerasoftware.com/doc/Helpnet/installshield15helplib/ChainedMSIPackages.htm关于MSI4.5的详细介绍及下载
http://support.microsoft.com/kb/942288