首页 > 解决方案 > Inno Setup 6.0.5 总是创建没有签名的新卸载程序文件

问题描述

我最近将 Inno Setup 从 5 升级到 6。

构建脚本和 iss 文件没有更改,但是,在 Inno Setup 6 环境中构建总是失败。

失败点位于已签名的卸载程序中。

[Setup]
SignedUninstaller = yes
SignedUninstallerDir=Release\

为了创建带有数字签名的卸载程序,我SignedUninstaller=yes在我的中设置setup.iss,我没有设置 SignTool,因为我的签名是由其他服务提供的,我需要使用其他脚本来代替。

在inno setup 5环境中,它第一次创建了一个新的卸载uninst-5.5.9 (u)-xxxxxx.e32程序文件,我把它拿来做其他服务签名然后放回Release\文件夹。

重新编译我的构建脚本,它显示“使用现有的签名卸载程序文件:uninst-5.5.9 (u)-xxxxxx.e32”,我在创建卸载程序之前添加了签名。Inno Setup 5 一切正常。

但是,我只是将inno setup升级到6.0.5,情况完全不同,卸载程序的文件名在每次编译时都会更改,总是显示“正在创建新的签名卸载程序文件:uninst-6.0.5 (u)-xxxxxxxx.e32 ",这导致我在 Inno Setup 5 中所做的方法不能在这里工作。

我注意到这里的编译日志完全不同......

创新设置 5

Preparing Setup program executable
   Updating icons (SETUP.E32)
   Using existing signed uninstaller file: 

创新设置 6

Preparing Setup program executable
   Updating icons (SETUP.E32)
   Updating version info (SETUP.E32)
   Creating new signed uninstaller file:

代码完全相同,只是升级了 Inno Setup 编译器。

有人知道5和6的区别吗?

谢谢

标签: installationinno-setupcode-signing

解决方案


6.0.4 开始,Inno Setup 将您的应用程序的版本信息(产品名称、产品版本、公司、版权等)包含到卸载程序中。这是此更改的一部分:

安装程序现在支持 Windows AppLocker 发布者条件,包括文件名级别。


因此,每个应用程序的卸载程序现在都不同。这确实有点取消了SignedUninstallerDir.


推荐阅读