我們在制作安裝包時,有些情況下會涉及第三方安裝的集成,這里將討論如何調用安裝第三方包,以及需要注意的事項。
第三方安裝包的介質類型有很多,主要有:單獨的一個Setup.exe,單獨的一個msi包,或者是類似光盤結構的一組文件及文件夾的安裝包。
首先,如何在InstallShield中添加第三方安裝包:
如果是單獨的Setup.exe或單獨的msi包,可以將他們添加到【Behavior and logic】 -> 【Support Files】 -> 【Language Independent】中。
如果是一組文件以及文件夾的安裝包,可以將他們添加到【Behavior and logic】 -> 【Support Files】 -> 【Advanced Files】-> 【Disk1】中。
其次,第三方安裝包在InstallShield中的路徑如何獲取:
如果是單獨的Setup.exe或單獨的msi包, 可以通過SUPPORTDIR獲取,然后組合出第三方安裝包的執行路徑。(注意:InstallScript工程中,SUPPORTDIR是一個系統變量,可以直接利用;而在MSI工程中,SUPPORTDIR是一個Property,所以需要通過MsiGetProperty讀取)
如果是一組文件以及文件夾的安裝包,可以通過SETUPEXEDIR方安裝包的執行路徑。(注意:這里SETUPEXEDIR的讀取方式同SUPPORTDIR)。
最后,調用方法:
如果是.exe文件,可以通過LaunchAppAndWait直接調用。
如果是.msi文件,可以通過LaunchAppAndWait直接調用Windows Installer安裝引擎,然后以參數的形式給入.msi路徑。
上述方式,只適用于主安裝包是.exe的情況,如果是將主安裝包做成單獨的.msi包,其中SETUPEXEDIR將無效。
另外,SETUPEXEDIR是InstallShield 8或9之后才有的一個系統變量,所以大家只用之前,可以通過幫助文檔確認該變量的使用限制。