2013-07-29 58 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维基