Visual Studio签名失败(signtool.exe错误)

9
今天下午接受了一次微小的Windows更新后,我发现无法再对我的Visual Studio应用程序进行签名构建。
经过深入分析,我找到了signtool.exe程序,它位于一个不起眼的目录下(C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64)。我尝试使用命令提示符手动运行它来签署我的应用程序,但是当我这样做时,没有任何输出和错误消息。我还尝试在没有参数的情况下运行它,期望得到帮助信息或至少一个错误消息,但是同样没有任何反应。
我去了另一台今天尚未接收任何Windows更新的计算机,找到了同样的文件,并运行了它:它可以正常工作。
考虑可能是第一台计算机上损坏了.signtool.exe文件,我将其从其他计算机复制了一份,但它仍然失败了。但是,如果我将该文件重命名,则可以运行它。例如,如果我将其重命名为"signtool1.exe",则可以从命令行顺利运行,尽管由于名称更改,Visual Studio仍无法运行它。
在整个过程中,我尝试多次重新启动计算机,以为可能是内存中卡着它的副本,但实际上并没有。我还在任务管理器中搜索了它。
我以前从未见过类似的情况。相同的程序根据可执行文件的名称运行或不运行。另外一个细节是,如果我将其复制到我的主目录中,它实际上会运行,无论文件名是什么。是什么原因导致这种情况的发生呢?
谢谢, Frank

Win10在进程失败时不再显示崩溃对话框。这是程序员需要修复的问题。请查看应用程序事件日志以获取崩溃通知。 - Hans Passant
我遇到了同样的问题。我使用下面@xperia64的提示解决了它。然而,这个链接也可能相关Microsoft承认Windows 10 KB453599存在重大问题 - Neil Weicher
2个回答

11

我发现除了重命名signtool.exe之外,重命名/删除signtool.exe.manifest也可以使signtool运行,同时还允许Visual Studio来运行它。

我不知道为什么会这样或删除清单的副作用是什么,但这足以让我的项目重新构建。

供参考,我在一个干净的Windows 10 1909虚拟机中进行了干净的VS2019安装(但很快进行了完全更新)后遇到了这个问题。


7
我看到了同样的问题。Signtool没有显示任何错误对话框,但返回的错误代码是-1073741502(0xC0000142),STATUS_DLL_INIT_FAILED。
这个问题可能与更新KB4535996有关。当我发现问题时,我卸载了更新,signtool正常工作。重新安装更新后,问题又出现了。
如果我将清单文件移出目录,Signtool可以工作,就像你看到的那样。但我也注意到,当我将清单文件移回目录时,Signtool也可以工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接