一、CAB打包过程:
下载CABSDK.EXE解压后在命令行下进入其bin目录,用CABARC.EXE打包。
(1)为了方便操作,可以将CABARC.EXE添加到环境变量中:桌面上右击“我的电脑”,“属性”,“高级”,“环境变量”,“系统变量”,找到“Path”,在后边把CABARC.EXE所在的路径添加上去,注意用分号隔开新添加的路径。
(2)准备好文件
install.inf :CAB安装配置文件
HelloBossmaSetup.msi:安装程序文件
install.inf文件的内容:
[version]
signature="$CHICAGO$"
AdvancedINF=2.0
[Setup Hooks]
hook1=hook1
[hook1]
run=msiexec.exe /i "%EXTRACT_DIR%\XXX.msi"/qn
run:一般只需要修改这个就行了
(3)执行cabarc命令
桌面左下角“开始”,“运行”,输入cmd,打开命令提示符工具,进入准备好的文件的目录,执行命令:
cabarc n HelloBossma.cab HelloBossmaSetup.msiinstall.inf
显示“Completed successfully” ,打开所在目录,就可以看到生成的文件了。
二、部署测试
找个IIS,编个ASP网页之类的文件,加入下列代码:
<object classid="clsid:636B8CE1-7512-464C-B63C-FC75BDCA21DB" codebase="hellobossma/HelloBossma.CAB" width="442" height="87" id="HelloBossma" name="HelloBossma">
其中clsid为项目中申请的GUID,codebase非常重要,开始我测试的时候将CAB文件和这个网页放在同目录下,codebase写成:"XXX.CAB",结果打开这个网页,状态栏进度条很快就结束并且显示红叉,没有任何安装提示,而且电脑的C:\WINDOWS\Downloaded Program Files 目录下也没有下载下来的文件,这让我很困惑。搞了一晚上也没搞明白是哪里错了,不停地打包测试,始终不成功,除非自己手动在电脑上安装MSI文件,网页始终不能自动安装。当然是在那些IE安全级别,安全接口之类的我已经完成的前提下。
最后我偶然把codebase改成:"hello/XXX.CAB" 就是我把CAB文件放在和网页同级的一个新建的hello文件夹中,突然发现网页正常了,能够自动安装并显示了。让我吐血啊,希望给同样困惑的朋友一点启示。