从卸载部分重新执行安装NSIS
问题描述:
我有一个安装程序的NSIS代码.onInit我检查是否存在旧版本,如果用户点击确定按钮,它会卸载它,我希望一旦卸载完成安装重新执行,我尝试在un.onUninstSuccess
函数中调用.onInit
函数,但它不接受它,因为un.
函数只接受un.
函数。 任何想法将不胜感激。从卸载部分重新执行安装NSIS
答
这不是要做的。当您启动卸载程序时,您将启动另一个进程(通常为uninstall.exe
),因此您不能仅从它跳到安装程序。
你可以做的是:
- 检查,如果以前的版本存在
- 如果是这样,开始其unistall.exe在等待子进程完成
- 一旦你回到安装程序,继续安装
平常的方式从安装调用卸载程序
ExecWait '"$INSTDIR\uninstaller.exe" /S _?=$INSTDIR'
答
可能不是最干净的解决方案,但有一个在NSIS维基
一个combined un/installer例子谢谢@Seki就是这样,我只是在写一个答案,你发布你的,检查现有版本我运行后反正'ExecWait'“$ INSTDIR \ uninst.exe”/ S _?= $ INSTDIR''然后函数继续执行,因为没有安装版本,再次感谢您的时间。 – Oumaya