Installshield 静默安装,一般需要2个步骤,
第一是执行build出来的setup.exe文件——也叫录制(setup.exe -r),也就是记录各个安装页面的默认操作,写入setup.iss(可以自己命名),内容如下图1所示;
setup.exe-r -f1"c:\setup.iss"
这里需要注意,f1和后面的内容之间是连在一起的,不能有空格;也可以不要参数f1,默认生成的setup.iss文件会在C:\Windows目录下。
第二步就是执行(setup.exe -s)——也叫调用、或者播放,就是我们要的静默安装。其实,说白了,就是先记录下你需要的参数,以后安装就根据这份默认参数执行安装。
setup.exe-s -f1"c:\setup.iss"
执行时,一定要确认iss文件的路径是绝对路径,执行成功后,会生成一个setup.log文件,没有特殊设置的情况下,成功ResultCode是0,否则是-5(一般是找不到iss文件)
对于包含“自定义页面”的安装包,若要静默安装,就需要在自定义页面中调用SilentReadData 和SilentWriteData 函数记录对应的数据。
以选择安装目录为例,Installshield提供的Dailog 是让用户自己选择文件夹作为安装路径,但是有时,我们可能只希望用户指定安装的磁盘,我们指定固定的文件目录,这样就需要去自定义的页面,比如我的页面叫“DialogShowSdAskDestPath”,我需要在setup.iss中记录下szDir 和 Result(就是页面上选择的Back、Next或者Abort)。
具体实现:
只需在自定义页面对应的函数开始,增加if 判断,如果是SILENTMODE,就去读setup.iss文件(具体写法可以参考Installshield帮助文档中SilentReadData的example),否则就是自定义页面的正常操作。
既然有读取,就要有人来写。在正常自定义函数最后,调用SilentWriteData去记录对应的信息到seup.iss文件中。