0

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

4

2 回答 2

1

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

你可以做的是:

  • 检查是否存在以前的版本
  • 如果是这样,在等待子进程完成的同时启动它的 unistall.exe
  • 回到安装程序后,继续安装

从安装程序调用卸载程序的常用方法是

ExecWait '"$INSTDIR\uninstaller.exe" /S _?=$INSTDIR'
于 2013-07-29T11:14:02.947 回答
0

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

于 2013-07-29T11:47:37.890 回答