2011-10-04 230 views
22

我在签署我的软件时遇到了一个奇怪的错误。我正在使用inno setup 4.5.2。signtool使用inno setup失败:0x80070003 - “Store IsDiskFile()失败”

Running Sign Tool command: signtool.exe sign /a /f cert.pfx /v /t "http://timestamp.verisign.com/scripts/timstamp.dll" /p pwd /d "Setup Label" "out\uninst.e32.tmp" 
SignTool Error: An unexpected internal error has occurred. 
Error information: "Error: Store IsDiskFile() failed." (-2147024893/0x80070003) 
Error in W:\path\installer.iss: Sign Tool failed with exit code 0x1. 
Compile aborted. 

命令行看起来很不错,它甚至可以在inno安装程序编译之外工作。虽然设置SignedUninstaller=no让我走得更远,但在尝试签署输出设置文件时仍会出现此错误。

现在我已经看到几乎无处不在的错误代码(0x80070003)和/或消息“存储IsDiskFile()失败”。我也尝试过多个版本的signtool。

回答

36

我想通了这个问题,证书的路径必须相对于安装程序的输出路径,而不是当前的工作文件夹。在这种情况下,它将是“.. \ cert.pfx”

+9

此消息表示无法找到证书文件。就我而言,这只是简单的失踪(没有在本地签出)。 +1 – ashes999

+1

我也是。不是一个非常有用的错误信息! – mikeyq6

2

我有同样的问题。我的问题是我在signTool命令中使用了",而我需要使用$q。令人惊讶的是,它成功地签署了可执行文件,但未能签署结果setup.exe文件。