NSIS静默安装程序 - 未观察到跳转

kir*_*off 0 installer nsis silent silent-installer

我想NSIS文档例如对于静默安装,在这里.取消注释该行

; SilentInstall silent
Run Code Online (Sandbox Code Playgroud)

然后是的,我的安装程序是沉默的.但是,它会显示消息框.即使安装程序是静默的,预计也会出现消息框.为了使消息框保持静音,必须为每个消息框播放/ SD选项.示例脚本在此处提出:

MessageBox MB_OK|MB_ICONINFORMATION "This is not a silent installer" /SD IDOK
Run Code Online (Sandbox Code Playgroud)

暴露消息框的另一个意思是暴露:它检查是否静默.如果是静音,则向前跳两行(所以不要显示消息框)

IfSilent 0 +2
    MessageBox MB_OK|MB_ICONINFORMATION 'This is a "silent" installer'
Run Code Online (Sandbox Code Playgroud)

第二种解决方案对我不起作用.如果我将安装程序设置为静音,则会显示带有"这是静默安装程序"的框.如果我改变它

MessageBox MB_OK|MB_ICONINFORMATION 'This is a "silent" installer' /SD IDOK
Run Code Online (Sandbox Code Playgroud)

消息未出现.

为什么跳进去

IfSilent 0 +2
Run Code Online (Sandbox Code Playgroud)

不工作?+3也没有成功.

And*_*ers 6

像zbynour说的那样,你把参数搞得一团糟.

要避免相对跳转问题,请使用logiclib:

!include LogicLib.nsh

...

${IfNot} ${Silent}
  MessageBox ...
${EndIf}
Run Code Online (Sandbox Code Playgroud)