最近在使用installshield制作一个vb程序的安装包时,用到了soapsdk.exe,而这是一个exe安装文件,如果直接写脚本,类似:LaunchAppAndWait (“soapsdk.exe”, “”, WAIT) 这样的话,在安装过程中会弹出一个对话框的,这样就显得很繁琐。那有没有能合并安装soapsdk.exe的方法呢?有的。
第一种方法:取出msi文件
打开cmd,执行
soapsdk.exe /T:”C:\extractMsiToThisFolder” /C
然后在c盘的\extractMsiToThisFolder\文件夹下就有了soapsdk.msi,这个时间就可以在脚本中使用
“msiexec /package soapsdk.msi /quite”来静默安装了。
代码如下:

szProgram=WINSYSDIR^"msiexec.exe";
szCmdLine="/i \""+SUPPORTDIR^"soapsdk.msi\" /passive";
if(LaunchAppAndWait(szProgram,szCmdLine,WAIT)<0) then
    MessageBox ("SUPPERT目录没有安装文件",SEVERE);
endif;

第二种方法:

1、下载STK3Redist.EXE
2、解压缩后是三个msm文件,把将msm文件拷贝到InstallShield安装目录下的Objects文件夹下,例如:Macrovision\IS12\Objects
3、然后在InstallShield下,将相应的msm合并模块从上面的InstallShield objects/Redistributables选中(SOAP SDK Files ,SOAP SDK ISAPI Files和WinHTTP QFE Installer )
4、编译测试打包通过。

第一种方法参考自silent install of soap toolkit
第二种方法参考自VB之WebService客户端打包经历(初次理解msm)