如何检测和处理 NSIS 编译时错误?

How to detect and handle NSIS compile-time errors?

我正在使用 NSIS 2.46 构建一些安装程序。作为安装程序构建过程的一部分,我需要使用 !system 到 运行 一些命令(在本例中,一些 Python/pip 命令,尽管这并不重要)。我希望能够处理 !system return 为非零值的情况(可能只是使用 !error 来显示消息并退出,尽管这并不重要).

如何从 !system 访问 return 值以检查错误?

我查看了文档,并在此处和其他地方进行了搜索,但尚未找到任何答案。

在 NSIS v2 中,您所能做的就是 !system '"whatever" /whatever' = 0,如果退出代码不是 0,编译器将中止。

在 v3 中,也可以将退出代码保存在定义中:

!system '"whatever" /whatever' code
!if ${code} > 666
!error "Ooops"
!endif