我最近将Inno安装程序从5升级到6。
编译脚本和iss文件不会被更改,但是在Inno安装程序6环境中生成总是失败。
失败点在已签名的卸载程序中。
[Setup]
SignedUninstaller = yes
SignedUninstallerDir=Release\
为了创建一个带有数字标志的卸载程序,我在我的setup.iss
中设置了setup.iss
,我没有设置SignTool,因为我的签名是由其他服务提供的,我需要使用其他脚本进行签名。
在new 5环境中,它第一次创建了一个新的卸载程序uninst-5.5.9 (u)-xxxxxx.e32
文件,我用它来完成其他服务的签名,然后将它放回Release\
文件夹中。
重新编译我的构建脚本,它显示了“使用现有的签名卸载程序文件: uninst-5.5.9 (u)-xxxxxx.e32”,我在前面添加了签名来创建卸载程序。在Inno安装程序5中,一切都运行得很好。
但是,我只升级到6.0.5,事情完全不同,卸载程序的文件名在每次编译中都被更改,总是显示“创建新的签名卸载文件: uninst-6.0.5 (u)-xxxxxxxx.e32",这导致我在inno安装程序5中所做的方法无法在这里工作。
我注意到编译日志在这里很不一样..。
Inno安装程序5
Preparing Setup program executable
Updating icons (SETUP.E32)
Using existing signed uninstaller file:
Inno安装程序6
Preparing Setup program executable
Updating icons (SETUP.E32)
Updating version info (SETUP.E32)
Creating new signed uninstaller file:
代码完全相同,只升级Inno安装编译器。
有人知道5和6之间的区别吗?
谢谢
发布于 2020-07-02 08:14:24
自6.0.4以来,Inno安装程序将应用程序的版本信息(产品名称、产品版本、公司、版权等)包含到卸载程序中。这是这一变化的一部分:
Windows AppLocker发布服务器条件现在由文件名级别的设置和包含支持。
因此,对于每个应用程序,卸载程序现在是不同的。这实际上取消了SignedUninstallerDir
的预期缓存效果。
https://stackoverflow.com/questions/62641587
复制相似问题