使用相对路径设置 Inno Setup 符号工具

Setting Inno Setup sign tool with relative paths

我正在尝试将 Inno Setup IDE“签名工具”命令设置为使用相对路径。 我制作了一个 sign.bat 脚本,它按照以下文件结构调用 signtool.exe

code_sign\
          + sign.bat
          + signtool.exe
          + cert.pfx
script.iss

如果我将签名工具 (Tools / Configure Sign Tools...) 命令设置为 code_sign\sign.bat $p,我收到以下错误消息:

   Sign Tool command failed (Failed to execute Sign Tool.

Error 2: The system cannot find the file specified). Will retry (2 tries left).
   Running Sign Tool command: sign.bat "(...)\uninst.e32.tmp"
   Sign Tool command failed (Failed to execute Sign Tool.
(...)

签名工具调用时的工作路径是什么?

遗憾的是我不能使用绝对路径(有效),因为 code_sign 文件夹是与其他应用程序和其他用户共享的子模块。

我做错了什么?我应该使用命令行版本吗?

编辑:根据要求,sign.bat 内容:

SET script_path=%~dp0
SET stool=%script_path%signtool.exe
SET pfx=%script_path%cert.pfx

SET ntp=http://timestamp.globalsign.com/scripts/timstamp.dll
SET pwd=12345

"%stool%" sign /f %pfx% /p %pwd% /tr %ntp% /td SHA256 %1

将您的签名工具命令配置为仅 $p

然后在您的 .iss 中,设置 SignTool directive as follows (assuming the sign tool command is named custom), with a use of SourcePath preprocessor predefined variable

[Setup]
SignTool=custom {#SourcePath}\code_sign\sign.bat $f