2013-07-29 61 views
0

我有一個安裝程序的NSIS代碼.onInit我檢查是否存在舊版本,如果用戶點擊確定按鈕,它會卸載它,我希望一旦卸載完成安裝重新執行,我嘗試在un.onUninstSuccess函數中調用.onInit函數,但它不接受它,因爲un.函數只接受un.函數。 任何想法將不勝感激。從卸載部分重新執行安裝NSIS

回答

1

這不是要做的。當您啓動卸載程序時,您將啓動另一個進程(通常爲uninstall.exe),因此您不能僅從它跳到安裝程序。

你可以做的是:

  • 檢查,如果以前的版本存在
  • 如果是這樣,開始其unistall.exe在等待子進程完成
  • 一旦你回到安裝程序,繼續安裝

平常的方式從安裝調用卸載程序

ExecWait '"$INSTDIR\uninstaller.exe" /S _?=$INSTDIR' 
+0

一個combined un/installer例子謝謝@Seki就是這樣,我只是在寫一個答案,你發佈你的,檢查現有版本我運行後反正'ExecWait'「$ INSTDIR \ uninst.exe」/ S _?= $ INSTDIR''然後函數繼續執行,因爲沒有安裝版本,再次感謝您的時間。 – Oumaya

0

可能不是最乾淨的解決方案,但有一個在NSIS維基