在InstallShield的各種工程類型中,Basic MSI工程Build出的安裝包基於Windows Installer標准,所以默認就支持靜默安裝(至於如何靜默安裝,請自行補充相關知識)。而對於另外一種工程類型InstallScript,則過程稍復雜,需要先通過 “/r” 參數路徑靜默腳本*.iss文件,然后再通過“/s"靜默參數完成靜默調用。
InstallShield的幫助文檔中關於InstallScript的靜默執行的示例如下:
Setup.exe /s /f1"C:\Temp\Setup.iss"
上述情況其實只滿足一種情況下才能成功執行,及你的安裝包不是壓縮成一個*.exe的安裝包。
如果是一個*.exe的安裝包,並且要支持靜默安裝包,就必須將錄制的*.iss靜默腳本文件Insert到Release的Disk1下,然后重新Build一次安裝包,重新獲得的*.exe才支持"/s"參數。簡單分析原因就是壓縮的*.exe在運行安裝過程中先進行了解壓,將安裝文件釋放到系統臨時目錄下,之后運行安裝,主*.exe在臨時目錄下讀取*.iss失敗,至於InstallShield為什么在這個解壓過程中沒有將我們顯式指定的f1參數帶入,不得而知了 :(
另外,對於InstallScript工程的安裝包,在靜默調用出現問題時,要善於通過Setup.log文件獲取ResultCode,確定靜默安裝失敗的具體原因。