Inno Setup ISCC命令行签名时引号与空格的使用问题
解决ISCC签名命令执行失败的问题
问题根源:你当前的命令把ISCC的
/Ssigntool参数拆成了多个独立部分,ISCC无法识别完整的签名指令串,同时路径含空格时的引号嵌套格式错误。修正后的命令格式:
需要将整个signtool签名命令作为/Ssigntool=的完整参数,用双引号包裹;内部含空格的路径,要用转义双引号适配不同执行环境的语法要求。批处理中直接执行的正确命令:
iscc "C:\Inno Setup Scripts\test.iss" /Ssigntool="\"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe\" sign /f \"C:\Test PFX\test.pfx\" /tr http://timestamp.sectigo.com /td sha256 /fd sha256 /a /p codeSigningPassword $f"若从C#构造该命令,需处理字符串转义(使用逐字字符串时,双引号用两个连续双引号表示):
string isccCmd = @"iscc ""C:\Inno Setup Scripts\test.iss"" /Ssigntool=""\""C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\signtool.exe\"" sign /f \"\"C:\Test PFX\test.pfx\"\" /tr http://timestamp.sectigo.com /td sha256 /fd sha256 /a /p codeSigningPassword $f""";额外注意事项:
- 给signtool路径加上
.exe后缀,避免系统识别歧义 - 确保
codeSigningPassword变量在批处理执行时已被正确替换为实际密码值
- 给signtool路径加上
内容的提问来源于stack exchange,提问作者Dave Doknjas
相关产品推荐
相关产品推荐

