一、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文件夾中,突然發現網頁正常了,能夠自動安裝並顯示了。讓我吐血啊,希望給同樣困惑的朋友一點啓示。