Inno setup signtool因Inno设置失败,退出代码为0x1

Inno setup signtool因Inno设置失败,退出代码为0x1,inno-setup,code-signing,signing,code-signing-certificate,Inno Setup,Code Signing,Signing,Code Signing Certificate,突然,我的Inno安装编译器停止工作。自从我上次使用它以来,我刚刚安装了一个新的证书,它仍然颁发给同一家公司 我以这种方式配置了签名工具(名称是证书中主题字符串的开头): 然后在Inno Setup.iss文件中,我有: SignTool=mysigntool SignedUninstaller=yes 如果我删除了/t和时间戳,则该标志总是失败,退出代码为0x1。请注意,如果我在命令提示符下运行相同的命令,那么签名将非常有效。首先尝试的显然是独立运行signtool.exe,查看它输出的错误

突然,我的Inno安装编译器停止工作。自从我上次使用它以来,我刚刚安装了一个新的证书,它仍然颁发给同一家公司

我以这种方式配置了签名工具(名称是证书中主题字符串的开头):

然后在Inno Setup.iss文件中,我有:

SignTool=mysigntool
SignedUninstaller=yes

如果我删除了/t和时间戳,则该标志总是失败,退出代码为0x1。请注意,如果我在命令提示符下运行相同的命令,那么签名将非常有效。

首先尝试的显然是独立运行
signtool.exe,查看它输出的错误

(我知道你已经试过了)


如果无法以这种方式重现问题,请从命令行运行Inno Setup编译器。您将看到
signtool
的输出以及其他编译器的输出

如果从Inno Setup GUI编译时,
signtool
失败,其控制台会短暂闪烁,因此您没有机会看到其输出


或者,您可以将
signtool.exe
包装到批处理文件中,并从Inno安装程序而不是
signtool
调用批处理。在批处理文件的末尾,如果签名失败,请调用
pause
。这样,您甚至可以在Inno安装GUI中看到错误

批处理文件可能如下所示:

@echo off

c:\path\signtool.exe %*

set SIGN_RESULT=%ERRORLEVEL%

if %SIGN_RESULT% equ 0 (
  echo Signing succeeded
  exit /B 0
)

echo Signing failed with %SIGN_RESULT%
pause

exit /B %SIGN_RESULT%


另请参见。

您需要将
$f
添加到SignTool的末尾(在IDE设置中,而不是脚本中),以便实际传递要签名的文件名。这就是为什么会出现“缺少文件名”错误


参见。

signtool.exe的输出是什么?
从Inno设置中,我没有得到太多的细节。当我单击run或compile时,我只得到:
编译器错误!签名工具失败,退出代码为0x1。
虽然您可能没有要求,但根据您提供的信息,您永远无法得到更好的答案。这不是一个讨论论坛。这是问答网站。只有你的问题好,你才能得到好的答案。
@echo off

c:\path\signtool.exe %*

set SIGN_RESULT=%ERRORLEVEL%

if %SIGN_RESULT% equ 0 (
  echo Signing succeeded
  exit /B 0
)

echo Signing failed with %SIGN_RESULT%
pause

exit /B %SIGN_RESULT%