一、背景
上篇配置好Inno的签名之后Inno Setup 卸载进程签名-CSDN博客,还有sha1和sha256双签的需求。
二、尝试解决
网上查了一下Inno Setup如何配置双签,因为需求不多,所以资料也不多,了了几篇都是说配置两个签名,一个SignSha1和一个SignSha256,然后【Setup】字段中写两个SignTool,就像这样:
SignTool=SignSha1
SignTool=SignSha256
SignedUninstaller=yes
可能是由于我Inno Setup版本的问题,这么写编译报错
三、解决方案
本质上Inno配置签名就是配置一行命令行脚本,交给编译器去自己执行,想实现一行命令双签,写个双签的bat脚本,Inno中签名配置去调用这个脚本就可以了,理论没问题,实践试试看。
1、写脚本:
E:\pkg_evn\signtool.exe sign /v /fd sha1 /tr xxxxxxx /td sha1 /sha1 yyyyyyy %1
E:\pkg_evn\signtool.exe sign /v /fd sha256 /as /tr xxxxxxx /td sha256 /sha1 yyyyyyy %1
xxxxxxx是签名时间戳服务器地址
yyyyyyy是指纹
%1是接收的命令行参数
2、配置脚本
E:\pkg_evn\inno_sign.bat $f
inno_sign.bat就是刚才写的脚本
$f是传过去的命令行参数
3、签名配置完成后,【Setup】字段对应加上SignTool,详情见Inno Setup 卸载进程签名-CSDN博客
4、编译运行,一点毛病没有
5、注意,首先bat脚本中的签名命令不能错,如果签名命令有error的话,编译会终止,需要先排查签名的error