Inno setup 使用Inno设置进行条件签名

Inno setup 使用Inno设置进行条件签名,inno-setup,Inno Setup,我正在使用Inno Setup 6.0.3,希望控制是否通过命令行对(un)安装程序进行签名。目前,我的Setup.iss如下所示: SignedUninstaller=true SignTool=... 我想通过参数/环境变量/任何东西禁用签名 我该怎么做 这样做的原因是我想在开发人员工作站上禁用签名,而在CI服务器上(un)安装程序应该被签名。InnoSetup编译器完全支持命令行自定义参数,如its中所示 因此,您可以在Setup.iss文件中定义自己的自定义参数: ; CASE 1)

我正在使用Inno Setup 6.0.3,希望控制是否通过命令行对(un)安装程序进行签名。目前,我的
Setup.iss
如下所示:

SignedUninstaller=true
SignTool=...
我想通过参数/环境变量/任何东西禁用签名

我该怎么做


这样做的原因是我想在开发人员工作站上禁用签名,而在CI服务器上(un)安装程序应该被签名。

InnoSetup编译器完全支持命令行自定义参数,如its中所示

因此,您可以在
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

几分钟前,我自己也发现了这个解决方案——你更快地发布了你的解决方案,很高兴知道这很有帮助:)在我看来,更常见的是,选择只基于参数/定义的存在,而不是使用1/0:
#ifdef SIGN\u卸载程序
SignedUninstaller=true
SignTool=…
#endif
然后像使用iscc Setup.iss/DSIGN\u卸载程序一样使用它。请参阅