如何调用NSIS中Function中使用的Label部分?

时间:2011-11-09 10:18:26

标签: installer nsis

我正在比较.onInit调用的函数中的版本检查,如果这个版本检查告诉机器有旧版本,那么我想卸载旧版本。怎么实现这个?我的方法是,如果存在旧版本,则消息框显示您已安装旧版本单击确定以安装新版本或取消以继续旧版本。 IDOK ok IDCANCEL取消确定:ExecWait Uninstal;执行uninstall.exe取消:中止;继续wid olde版本。

这里的问题是ExecWait正在与更新的版本安装并行执行。 (两者都是2个差异线)

为此我想在函数标签中仅包含Section Uninstall以静默卸载。

请指导我如何从函数中调用Section。

先谢谢

1 个答案:

答案 0 :(得分:0)

你不能打电话给一个部分,但你可以这样做:

Function MySectionCode
# My code goes here
FunctionEnd

Function .onInit
call MySectionCode
FunctionEnd

Section "MySection"
call MySectionCode
SectionEnd

为了清楚起见,ExecWait 始终等待子进程,但有时子进程启动其子进程并且不等待它们。要等待NSIS卸载程序,您需要使用特殊的_?= parameter