Inno Setup使用SignTool签名报错:SignTool Error: Invalid command: /d
报错原因
SignTool属于多子命令工具,支持sign(签名)、verify(签名验证)、timestamp(时间戳加盖)等不同操作,执行对应操作时必须将子命令放在所有参数最前面。你当前的命令跳过了必填的sign子命令直接填写参数,因此会识别/d为无效指令。
解决步骤
- 修正命令行测试命令语法
正确的签名命令需要在参数前补充sign子命令,修改后的命令格式如下:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" sign /d "xxx" /du "https://www.publictalksoftware.co.uk" /f "xxx" /p "xxx" /t "http://timestamp.digicert.com" /v "xxx"
先在命令行执行上述修正后的命令,确认无报错后再调整Inno Setup配置。
- 同步修改Inno Setup的signtool配置
你之前设置的signtool值也需要补充sign子命令,修改后的配置值为:
"C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\signtool.exe" sign $p
- 验证配置有效性
重新运行Inno Setup编译任务,即可正常调用签名工具完成安装包签名操作。如果仍有报错,可逐一检查签名证书路径、证书密码、待签名文件路径是否填写正确,排除路径包含特殊字符、空格未正确包裹的问题。
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

