使用 Inno Setup 进行条件签名
Conditional signing with Inno Setup
我正在使用 Inno Setup 6.0.3 并想控制是否通过命令行签署(卸载)安装程序。目前,我的 Setup.iss
看起来像这样:
SignedUninstaller=true
SignTool=...
我想通过 parameter/environment variable/whatever 禁用签名。
我该怎么做?
这样做的原因是我想在我们的开发人员工作站上禁用签名,而在我们的 CI 服务器上,(卸载)安装程序应该被签名。
Inno Setup 编译器完全支持命令行自定义参数,如其 Guide 中所述。
因此您可以在 Setup.iss
文件中定义自己的自定义参数:
; CASE 1) "iscc.exe Setup.iss /DSIGN_UNINSTALLER=1" -> SIGN UNINSTALLER
; CASE 2) "iscc.exe Setup.iss -> SIGN UNINSTALLER
; CASE 3) "iscc.exe Setup.iss /DSIGN_UNINSTALLER=0" -> DOES NOT SIGN UNINSTALLER
; Enable by default (case 2)
#ifndef SIGN_UNINSTALLER
#define SIGN_UNINSTALLER "1"
#endif
...
#if SIGN_UNINSTALLER == "1"
SignedUninstaller=true
SignTool=...
#endif
我正在使用 Inno Setup 6.0.3 并想控制是否通过命令行签署(卸载)安装程序。目前,我的 Setup.iss
看起来像这样:
SignedUninstaller=true
SignTool=...
我想通过 parameter/environment variable/whatever 禁用签名。
我该怎么做?
这样做的原因是我想在我们的开发人员工作站上禁用签名,而在我们的 CI 服务器上,(卸载)安装程序应该被签名。
Inno Setup 编译器完全支持命令行自定义参数,如其 Guide 中所述。
因此您可以在 Setup.iss
文件中定义自己的自定义参数:
; CASE 1) "iscc.exe Setup.iss /DSIGN_UNINSTALLER=1" -> SIGN UNINSTALLER
; CASE 2) "iscc.exe Setup.iss -> SIGN UNINSTALLER
; CASE 3) "iscc.exe Setup.iss /DSIGN_UNINSTALLER=0" -> DOES NOT SIGN UNINSTALLER
; Enable by default (case 2)
#ifndef SIGN_UNINSTALLER
#define SIGN_UNINSTALLER "1"
#endif
...
#if SIGN_UNINSTALLER == "1"
SignedUninstaller=true
SignTool=...
#endif