我可以在编译后签署 Inno Setup 安装程序而不是使用 SignTool 指令吗?

Can I sign the Inno Setup installer after it is compiled instead of using SignTool directive?

我在让 Inno Setup 的 SignTool 功能在我们的 Windows 安装上运行时遇到了很多麻烦。

我现在正在考虑在 Inno Setup 之外进行代码签名。

如果我在使用 Inno Setup 构建安装程序之前手动对我们的 exe 进行代码签名,然后手动对生成的 Setup.exe 进行代码签名,是否会提供与使用 SignTool 相同程度的代码签名是吗?

SignTool 是否签署 Setup.exe 以及我们在签名工具屏幕上指定的任何内容 .exe

SignTool 是否也签署了 Inno Setup 可能产生的 other 内部 .exe? (我问这个是因为我记得几年前有一个 filename.tmp exe 由 Setup.exe 得到 运行。SignTool 对那个有什么作用吗?)

我相信 Inno Setup 具有 SignTool directive 的根本原因是,您不能完全从外部对安装程序进行代码签名。

原因是编译时确实生成了两个内部可执行文件:

  • 一个内部安装程序(您引用的 .tmp),以及
  • 卸载程序

那是除了签名:

  • 安装程序本身(您确实可以在安装程序编译后自行签名)和
  • 可选的任何包含的二进制文件,如果它们具有 sign or signonce flag(您确实可以在编译安装程序之前自行签名)。

所以也许你实际上应该问一个关于 SignTool 指令的问题的新问题。设置起来并不难。

另请参阅这些问题以了解如何使用 SignTool 调试问题: