InstallAnywhere - Remove Previous Product of Installation

在啟用Upgrade Mode後,如果系統中有舊版本的軟體,IA會在執行安裝前幫你自動移除;如果不使用Upgrade Mode,這項工程就落到我們自己身上了。本篇文章分享在安裝過程中,移除舊版本軟體的方法。

首先要記得到Project>General Settings中關閉以下選項(假如很在意的話,就要寫CustomCodeAction去避掉這問題):


這選項會讓你無法在安裝過程中叫起反安裝程式。接著是移除軟體的動作,必須是在確認符合更新條件且在匯入先前安裝參數之後。而移除的方法很簡單,只要透過Execute Command並搭配silent mode參數去呼叫Uninstall程式:


以我的範例來說,$BASE_PRODUCT_LOCATION$是在先前文章曾提過的前一版本安裝路徑;Uninstall為反安裝程式;-i silent為silent mode參數。透過這個Command,就能讓安裝程式自己去移除先前軟體。

除此之外,要記得把第二個checkbox打勾,讓它真的完整執行後才會繼續下一個動作;而stdout、stderr、exitcode的部分也記得要改成專屬的變數名稱,用於發生問題時可以根據名稱追蹤原因。