我正在尝试静默安装程序here的NSIS doc示例。取消注释行
; SilentInstall silent
然后是的,我的安装程序是静默的。但是,它会显示消息框。即使安装程序是静默的,预计也会出现消息框。为了使消息框保持静音,必须为每个消息框播放/ SD选项。示例脚本在此提出:
MessageBox MB_OK|MB_ICONINFORMATION "This is not a silent installer" /SD IDOK
使消息框保持沉默的另一个意思是暴露:它检查是否静默。如果是静音,则向前跳两行(所以不要显示消息框)
IfSilent 0 +2
MessageBox MB_OK|MB_ICONINFORMATION 'This is a "silent" installer'
这第二个解决方案对我不起作用。如果我将安装程序设置为静音,则会显示带有“这是静默安装程序”的框。如果我改为
MessageBox MB_OK|MB_ICONINFORMATION 'This is a "silent" installer' /SD IDOK
消息未出现。
为什么跳转
IfSilent 0 +2
不工作? +3
也没有成功。
答案 0 :(得分:6)
就像zbynour所说,你把参数混淆了。
要避免相对跳跃问题,请使用logiclib:
!include LogicLib.nsh
...
${IfNot} ${Silent}
MessageBox ...
${EndIf}
答案 1 :(得分:3)
因为在静默安装的情况下第一个参数偏移到跳跃 (非静默的第二个参数)。
试试这个:
IfSilent +2 0