差異處
這裏顯示兩個版本的差異處。
java:installanywhere:missingvarwhenrunningsilentmode [2016/02/03 15:41] tony |
java:installanywhere:missingvarwhenrunningsilentmode [2023/06/25 09:48] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | {{tag>InstallAnywhere java}} | ||
- | ====== 某些變數在執行Silent模式遺失了 ====== | ||
- | ===== Problem ===== | ||
- | 在我們的測試案例中,有透過silent mode餵參數方式給Installer。但在更新到2015後,發現某些參數並沒有到達預期的效果。經過trace,問題是發生在LIST變數的assignment上:\\ | ||
- | {{:java:installanywhere:ia_adddebug_set_multiple_var.png|}}\\ | ||
- | 以我的例子而言,AGENT_PORT_LIST是一個LIST變數。在經過某個步驟後,使用者所輸入的三個值會被assign到此變數中,而Set Variable的動作會將三個值分別assign到三個變數中。而在silent mode中,AGENT_PORT_LIST是沒被初始化的。根據測試結果,2008會略過這無效的assignment,而2015會將變數變為空白。 | ||
- | ===== How to resolve? ===== | ||
- | 這問題我想到幾個解法: | ||
- | - 先確認LIST變數是否存在,存在才做assignment。 | ||
- | - silent mode略過這些動作。 | ||
- | 由於我們一開始就已經把UI動作分成GUI與console的group,又要避免發生我們沒預期到的問題。所以我選擇在silent mode時,略過GUI與console的group:\\ | ||
- | {{:java:installanywhere:ia_silent_mode_checking.png|}} | ||
- | ===== 後記 ===== | ||
- | 後來某個Installer突然發生某些檔案消失的情形,這是在修改這bug後所導致的。後來經過同事trace,差別在於有問題的Installer,有打勾Build Configurations>Distribution>Optimized的項目:\\ | ||
- | {{:java:installanywhere:ia_build_optimize.png|}}\\ | ||
- | 這是為了在build installer時,各自平台的Installer只會包自己所需要的東西。 | ||
- | ===== Reference ===== | ||
- | * [[http://helpnet.flexerasoftware.com/installanywhere2015/Default_Left.htm#CSHID=helplibrary%2Fia_eval_variables.htm|StartTopic=Content%2Fhelplibrary%2Fia_eval_variables.htm|SkinName=TechPubsSkinHelpNet|About Response Files and Silent Installers]] | ||
- | ===== ===== | ||
- | ---- | ||
- | \\ | ||
- | ~~DISQUS~~ |