2013-12-18 32 views
1

我們部署使用的InstallAnywhere 2012如何制止InstallAnywhere的安裝過程中,如果預定目標應用程序已經運行

部署的應用程序有一個版本的通知機制,即彈出一個網站的Java應用程序,並鼓勵用戶下載推出「新版本」,而「舊版本」可能仍在運行。在這個過程中有一個「請退出」對話框,但用戶通常不會退出,而安裝「新版本」的行爲通常只會覆蓋未被鎖定的文件,這會產生非工作安裝,直到用戶執行乾淨的重新安裝。

如果「舊版本」當前正在運行,我想修改實際的安裝程序以保釋,要求用戶先退出。

IA提供了一種「執行自定義代碼」的方法,可以指向一個jar文件。因此,我創建了一個獨立的runnable jar程序,如果全部清除,則以代碼0退出;如果檢測爲「舊版本」,則代碼爲1,依賴於tasklist.exe的返回和某些字符串分析。但是,我似乎無法找到一種方法來根據我的程序輸出來改變安裝程序的過程。

有沒有其他人試過在IA平臺上這樣做,如果成功了,你是怎麼做到的?

回答

2

配置自定義代碼操作。請保留以下內容作爲參考。

public class PreviousVersionCheck extends CustomActionBase{ 

    @Override 
    public void install(InstallerProxy proxy) throws InstallException { 

    boolean oldVersionRunning = isOldVersionRunning();//Logic to check if old version running. 
    proxy.setVariable("$OLD_VERSION_RUNNING$",oldVersionRunning) 
} 
} 

自定義代碼操作後,添加一個「顯示消息對話框」。 添加規則來進行行動
$ OLD_VERSION_RUNNING $等於true

在操作屬性,必須取消和退出選項,對的臺詞點擊按鈕..

希望這有助於..

+0

我這樣做,它*主要*工作,謝謝!但是,出現的窗格可以選擇「下一步」或「取消」,而理想情況下,我希望「下一步」被禁用或更改爲「重試」。但至少現在我有一個指向谷歌的東西:) –

相關問題