SignTool.exe偶尔因退出代码1而失败

问题描述 投票:8回答:4

作为构建系统的一部分,我们使用带证书的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意味着签署文件时出错。我可以验证文件没有签名。

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

如何解决和修复这些看似随机,不一致的签名失败?

cruisecontrol.net digital-certificate signtool
4个回答
5
投票

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


2
投票

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


2
投票

我刚刚在Windows 8.1上遇到过这个问题,因此不是某些人引用的Windows XP根证书问题。

我发现问题是由于正在签名的.exe也在运行造成的。

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

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


1
投票

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

这意味着,请确保证书文件有效且未过期。

© www.soinside.com 2019 - 2024. All rights reserved.