【问题标题】:NSIS silent installer returning exit code 1NSIS 静默安装程序返回退出代码 1
【发布时间】:2012-11-07 16:44:35
【问题描述】:

我将 NSIS 脚本编译为 .exe 安装文件。我使用命令行 \S 静默选项启动 .exe。

安装按需要静默执行,但存在退出代码 1。退出代码 1 对应于用户在向导上选择取消的情况。但是,安装成功并且模式为静默(无用户交互)。另外,这个退出码是从哪里来的,如何手动强制执行退出码0?

我有一个想法,我可以在 .onInstSuccess 函数中执行一些操作,如果安装成功,则强制执行退出代码 1。

此外,ExecWait 正在将退出代码捕获到变量中,但没有“设置”选项。

你会推荐什么?

感谢和问候

【问题讨论】:

  • 您是说带有单个空白部分的静默安装程序会产生退出代码 1 吗?如果是,请向我们展示您如何捕获此退出代码,如果不是,请向我们展示一些 NSIS 代码...

标签: installation nsis exit silent-installer


【解决方案1】:

没有任何示例代码,很难猜出问题可能是什么!

您可以使用SetErrorLevel 设置特定的退出代码。

就 ExecWait 而言,设置任何东西都是没有意义的,当它返回时,子进程已经结束。如果您想使用子进程的退出代码,您只需获取它:

ExecWait '"c:\foo.exe"' $0
SetErrorLevel $0

【讨论】:

  • 当安装程序处于静默状态时,函数 .onGuiEnd 不会被输入。我想我可能会要求它为什么好像用户会取消安装程序一样。所以我知道你在函数 .onInstSuccess 中的代码示例可以做到这一点......但没有$:没有捕捉到真正的退出代码,但强制执行 0。我会尝试但希望你对我的解释有意见(安装程序未访问 .onGuiEnd --> 退出代码 1)
  • .onGuiEnd 未在静默安装程序中执行(不使用页面,也没有 GUI 回调)
猜你喜欢
  • 1970-01-01
  • 2011-08-19
  • 2013-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 2019-11-19
  • 2012-11-05
相关资源
最近更新 更多