2013-09-01 245 views
0

有沒有辦法通過Inno安裝程序安裝程序自行更新程序?或者是否需要quit正在運行的程序才能升級?Inno安裝程序的自動更新

+0

這不是必要的,但是在覆蓋它的二進制文件之前退出應用程序要好得多。 – TLama

+0

@TLama,爲什麼它更好?它甚至可以覆蓋它的應用程序還沒有退出的二進制文件?既然你是Inno設置的內幕,我現在真的很希望! :) –

+0

1.因爲並不總是你可以移動舊的二進制文件並複製它的新版本,或者當你的應用程序使用的其他東西需要替換時(可能仍然在運行) )舊版本將無法理解它們(例如數據庫模式更新)。 2.您可以(嘗試)移動舊文件(例如,通過重命名)並複製新文件。所以是的,如果你夠幸運的話,這是可能的。 3.這個內幕意味着我正在構建幾個定製版本的InnoSetup,並進行了許多內部更改:-) – TLama

回答

3

您可以隨時在Inno安裝更新安裝程序中編寫一個腳本,用於檢查應用程序是否正在運行並在更新之前自動關閉它(FindWindowByClassNameFindWindowByWindowName)。或者更好的方法是在你的應用程序中創建Mutex,然後使用CheckForMutexes函數。

+1

對於互斥體,只需指定['AppMutex'](http://www.jrsoftware.org/ishelp/index.php?topic=setup_appmutex)指令即可。 – TLama

相關問題