InnoSetup打包自动签名

关于打包

​ 我第一次接触打包,用的是inno Setup。软件自带文档,比较方便,而且我下载的是汉化版,更容易查询。刚开始用这个软件什么都不会,慢慢摸索,普通打包基本上没有问题了,后来因为打包的软件老是被360拦截,就算手动将所有dll文件进行签名,也无济于事。360拦截的是innoSetup生成的tmp临时文件,于是搜索怎么解决。网上没有什么信息,到文档上看,有一条提到了怎么进行签名。经过测试,总算找到适合我的方法,来进行双签名。下面是文档上原文:

配置签名工具

  1. 打开编译脚本,在菜单栏中选择工具,然后在选择配置签名工具

  2. 配置值

  3. 找到signtool.exe的目录,将其配置在环境变量中

    这一步的目的是找到微软提供的签名工具,因为签名工具只能使用Windows10的SDK,所以windows7需要安装Windows10 的SDK,windows10没有试过,如果能在命令行中正常调用signtool,那么无需该步骤。
    我的电脑位置:

    演示innoSetup自动签名

    1. 新建iss脚本
    2. 编译并运行脚本
      编译的时候有可能会失败,一般是连接时间戳服务器超时引起的,失败后再次尝试就可以了。编译之后运行安装,到安装目录查看卸载程序unins000.exe,会发现程序已经被签名,如图所示:

总结

使用该方法后,每次新建iss脚本文件的时候,只需要在Setup字段添加两行,在根据实际情况在Files字段每一行的Flags添加signonce,就可以进行自动签名,再也不用担心被360之类的安全软件拦截了。当然前提你得有个证书进行签名!

补充

2021年3月16号补充:
我使用的打包工具版本是6.0.4
5.5.9版本编译正常
5.5.1版本编译会报错

评论