从卸载部分NSIS重新执行安装

时间:2013-07-29 09:57:52

标签: installer nsis uninstall

我有一个安装程序的NSIS代码,在.onInit我检查是否存在旧版本并在用户单击OK按钮时将其卸载,我希望卸载完成后再重新执行,我试试在.onInit函数中调用un.onUninstSuccess但由于un.函数仅接受un.函数,因此不接受它。 任何想法都将不胜感激。

2 个答案:

答案 0 :(得分:1)

这不是办法。当您启动卸载程序时,您将启动另一个进程(通常为uninstall.exe),这样您就不能从它跳转到安装程序。

你能做的是:

  • 检查以前的版本是否存在
  • 如果是,请在等待子进程完成时启动unistall.exe
  • 重新进入安装程序后,继续安装

从设置中调用卸载程序的常用方法是

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

答案 1 :(得分:0)

可能不是最干净的解决方案,但是在nsis wiki上有一个combined un/installer示例