9

作为我们构建系统的一部分,我们使用带有证书的 signtool.exe 在构建二进制文件后对其进行签名。偶尔(很难说什么时候会发生),签名会失败:

 error MSB3073: The command "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\signtool.exe" [...] exited with code 1.

根据 MSDN,退出代码 1 表示签署文件时出错。我可以验证该文件没有被签名。

我还注意到,有时,时间戳部分超时并显示不同的错误消息,尽管文件仍然被签名(没有时间戳)。

如何对这些看似随机的、不一致的签名失败进行故障排除和修复?

4

4 回答 4

5

我强烈怀疑与时间戳服务器的连接失败是导致偶尔失败的原因。也许您在有问题的时间检查系统事件日志是否有丢失的连接。

于 2012-02-21T18:45:23.540 回答
2

我有同样的问题。发生这种情况是因为 MS 反恶意软件进程 MsMpEng.exe 检查二进制文件并且不让任何人访问它。为了解决这个问题,我在 RAM 磁盘上构建了二进制文件并且它工作了。

于 2013-06-04T03:46:07.070 回答
2

我刚刚在 Windows 8.1 上遇到了这个问题,所以这不是一些人引用的 Windows XP 根证书问题。

我发现问题是因为被签名的 .exe 也在运行。

如果您从 cmd 提示符运行 signtool 并尝试对其进行签名,您将收到一条有用的文本消息,告诉您出了什么问题(比 CreateProcess() 的返回码 1 好得多。

停止正在运行的进程并能够签名确定。

于 2015-03-23T21:05:33.910 回答
1

就我而言,解决方案中的 .pfx 文件是旧文件。直到有人告诉我用新的有效证书文件替换证书文件,我继续收到“退出代码 1 失败”错误。

意思是,确保证书文件有效且未过期。

于 2016-01-20T09:37:36.633 回答