差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
java:installanywhere:upgrade:upgrade_product [2018/12/01 16:45]
tony [Reference]
java:installanywhere:upgrade:upgrade_product [2023/06/25 09:48] (目前版本)
行 13: 行 13:
 (我們使用InstallAnywhere 2015 Premier) (我們使用InstallAnywhere 2015 Premier)
 ===== How to? ===== ===== How to? =====
-在Upgrade Mode中,有兩個很好用的變數可以讓你取到安裝於系統的軟體版本與路徑,分別為$IA_UPGRADE_BASE_VERSION$、$IA_UPGRADE_BASE_LOCATION$;但如果沒使用Upgrade Mode,你就只能靠自己了。接下來主要分享:+在Upgrade Mode中,有兩個很好用的變數可以讓你取到安裝於系統的軟體版本與路徑,分別為$IA_UPGRADE_BASE_VERSION$、$IA_UPGRADE_BASE_LOCATION$;但如果沒使用Upgrade Mode,你就只能靠自己了。Pre-Install大致上會長這樣:​\\ 
 +{{:​java:​installanywhere:​upgrade:​ia_upgrade_procedure_overview.png|}}\\ 
 +\\ 
 +根據大家個別的軟體需求,會在反安裝前先做資料備份;在而Post-Install中,做資料還原或是Migration等。\\ 
 +\\ 
 +在處理更新流程上,我針對可能會遇到的問題提供方法給大家參考:
   * 如何偵測版本與安裝路徑?​ [[java:​installanywhere:​upgrade:​detect_base_product|link]]   * 如何偵測版本與安裝路徑?​ [[java:​installanywhere:​upgrade:​detect_base_product|link]]
-  * 如何判斷是否要升級?​ +  * 如何判斷是否要升級? ​[[java:​installanywhere:​upgrade:​check_upgrade_version|link]] 
-  * 如何延續前一次的安裝設定?​+  * 如何延續前一次的安裝設定? ​[[java:​installanywhere:​upgrade:​keep_previous_variables|link]] 
 +  * 如何在升級前先移除原本的軟體?​ [[java:​installanywhere:​upgrade:​remove_previous_product_of_installation|link]] 
 +  * 如何略過不必要的輸入?​ [[java:​installanywhere:​upgrade:​skip_input|link]] 
 +  * 如何在Pre-Install中放置script去協助升級?​ [[java:​installanywhere:​plugin:​extract_to_file|link]]
  
-==== CustomCodeRule - HasPreviousVersionRule ==== +假如想要在反安裝時,在Linux上要製造出Uninstall..的效果,可以參考[[https://www.flexera.com/products/installation/installanywhere-files-utilities-custom-code.html|官方CustomCode IndeterminateConsole]];它可以讓你在執行外部程式時,做出點點點的效果。
-<code java> +
-package org.tonylin.practice.ia.customcode;​ +
- +
-import com.zerog.ia.api.pub.CustomCodeRule;​ +
- +
-public class HasPreviousVersionRule extends CustomCodeRule { +
- @Override +
- public boolean evaluateRule() { +
- String base_version = (String)ruleProxy.getVariable("​BASE_PRODUCT_VERSION"​);​ +
- if( base_version == null || base_version.isEmpty() ) { +
- return false; +
-+
-  +
- String installer_version = (String)ruleProxy.getVariable("​PRODUCT_VERSION_NUMBER"​);​ +
-  +
- return installer_version.compareTo(base_version) >= 1; +
-+
-+
-</​code>​ +
- +
- +
-===== Reference ===== +
- +
-  * [[https://helpnet.flexerasoftware.com/installanywhere2015/Content/helplibrary/​ia_ref_variables_std_ia_vars.htm|Standard InstallAnywhere Variables]] +
-  * [[https://​helpnet.flexerasoftware.com/​installanywhere2015/​Content/​helplibrary/​ia_key_custom_code_overview.htm#​key_concepts_3330169420_1104528|Custom Code]]+
  
 +=====    =====
 +----
 +\\
 +~~DISQUS~~