使用 Inno Setup,我最近尝试从调用 Compil32 批量创建设置转向使用“iscc”。 以下无需签名即可正常工作(从 C# 代码的批处理文件执行):
iscc "C:\Inno Setup Scripts\test.iss"
但是当我尝试添加签名时,未创建设置:
iscc "C:\Inno Setup Scripts\test.iss" /Ssigntool="C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool" sign /f "C:\Test PFX\test.pfx" /tr http://timestamp.sectigo.com /td sha256 /fd sha256 /a /p codeSigningPassword $f
'codeSigningPassword'是在C#代码中设置的密码。
我怀疑这可能与我放置引号有关 - 我认为它们应该绕过任何有空格的文件路径。
整个符号命令必须用双引号引起来。内部引号需要“编码”为
$q
:
iscc "C:\Inno Setup Scripts\test.iss" "/Ssigntool=$qC:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool$q sign /f $qC:\Test PFX\test.pfx$q /tr http://timestamp.sectigo.com /td sha256 /fd sha256 /a /p codeSigningPassword $f
(尽管关键路径周围的第二对内部引号是多余的)
参见 https://jrsoftware.org/ishelp/index.php?topic=setup_signtool