系统环境:windows xp sp2.   IS2010premier
先决条件:MSI4.5或以上

1). 首先选择project 类型, 在这个实验里,我们选择 Basic MSI.

  

js head out of memory vite项目_UI


2). 在project Assistant处可以填写必要的信息(由于与本文讨论重点无关,不详细提及),点到Installation Designer处。

js head out of memory vite项目_进度条_02


 

3).选择Media---Releases

 

js head out of memory vite项目_ui_03


4).有键点chained .msi package, 点新建. 然后改成自己喜欢或者容易记录的名字.

 

js head out of memory vite项目_ui_04

5).点Browse,选择你需要安装的MSI.

js head out of memory vite项目_静默安装_05


 

6).选择好后,IS会弹出一对话框. (具体意思我就不翻译, 大家自己用点耐心看比较好.)

如果选择是, IS会整合chained package 的MSI到用户将要生成的MSI内部, 选择否, 则不会整合.

在这个例子中笔者选择否.

js head out of memory vite项目_进度条_06


 7).在这里不得不提到一个路径问题, 就是SourceDir.

简单来说SourceDir就是IS project 生成的主MSI所在的位置,换句话说,就是主MSI所在位置.

 

js head out of memory vite项目_静默安装_07


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