You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为InnoSetup卸载程序签名(改用SignTool对接签名服务器)

在Inno Setup中配置自定义签名命令(curl/脚本)

方法1:直接配置SignTool为curl命令

Inno Setup的SignTool指令支持直接调用外部命令,你可以将curl的完整签名命令填入,用{input}占位符接收Inno传递的待签名文件路径。

示例配置:

[Setup]
SignTool=curl -X POST "http://你的内部签名服务器地址/sign" -F "file=@{input}" -F "版本参数=xxx" --output "{input}" --fail
SignedUninstaller=yes
  • 关键说明:
    • {input}会被自动替换为当前需要签名的文件路径(安装包或卸载程序)
    • --output "{input}"确保签名后的文件覆盖原文件,适配Inno的签名流程
    • --fail让curl在签名失败时返回非零退出码,Inno会捕获错误并终止构建

方法2:通过脚本包装签名逻辑(更灵活)

如果curl命令复杂或需要额外逻辑(比如参数校验、临时文件处理),可以写批处理/PowerShell脚本,再将SignTool指向该脚本。

示例批处理脚本(sign_script.bat)

@echo off
setlocal

:: 接收Inno传递的待签名文件路径
set "FILE_TO_SIGN=%~1"

:: 调用内部签名服务器
curl -X POST "http://你的内部签名服务器地址/sign" -F "file=@%FILE_TO_SIGN%" -F "version=构建版本号" --output "%FILE_TO_SIGN%" --fail

:: 将curl的退出码返回给Inno,0为成功,非0为失败
exit /b %errorlevel%

Inno Setup配置

[Setup]
SignTool="sign_script.bat" "{input}"
SignedUninstaller=yes
  • 关键说明:
    • 脚本路径含空格时需用引号包裹
    • {input}作为参数传递给脚本,脚本内用%~1接收
    • 必须保证签名后的文件覆盖原文件,且返回正确的退出码

注意事项

  • 确保构建服务器已安装curl,且能正常访问内部签名服务器
  • 先单独测试签名命令/脚本,确认能完成签名后再集成到Inno
  • SignedUninstaller=yes会自动触发对生成的卸载程序调用签名命令,无需额外配置
  • Inno Setup 6.1.2完全支持该自定义配置,无需额外插件

内容的提问来源于stack exchange,提问作者Swedeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 09:09:53