某些變數在執行Silent模式遺失了

在我們的測試案例中,有透過silent mode餵參數方式給Installer。但在更新到2015後,發現某些參數並沒有到達預期的效果。經過trace,問題是發生在LIST變數的assignment上:

以我的例子而言,AGENT_PORT_LIST是一個LIST變數。在經過某個步驟後,使用者所輸入的三個值會被assign到此變數中,而Set Variable的動作會將三個值分別assign到三個變數中。而在silent mode中,AGENT_PORT_LIST是沒被初始化的。根據測試結果,2008會略過這無效的assignment,而2015會將變數變為空白。

這問題我想到幾個解法:

  1. 先確認LIST變數是否存在,存在才做assignment。
  2. silent mode略過這些動作。

由於我們一開始就已經把UI動作分成GUI與console的group,又要避免發生我們沒預期到的問題。所以我選擇在silent mode時,略過GUI與console的group:

後來某個Installer突然發生某些檔案消失的情形,這是在修改這bug後所導致的。後來經過同事trace,差別在於有問題的Installer,有打勾Build Configurations>Distribution>Optimized的項目:

這是為了在build installer時,各自平台的Installer只會包自己所需要的東西。然而在build的時候,可能是相當於silent mode情形,是什麼樣的字串我們沒有深究。最後是根據user guide建議,將判斷改成不等於SILENT。