Visual Studio 签名失败(signtool.exe 错误)
Posted
技术标签:
【中文标题】Visual Studio 签名失败(signtool.exe 错误)【英文标题】:Visual studio signing failed (signtool.exe error) 【发布时间】:2020-02-29 01:38:23 【问题描述】:在今天下午接受了一次小的 Windows 更新后,我发现我无法再对我的 Visual Studio 应用程序进行签名构建。
深入研究问题后,我发现了位于一个不起眼的目录 (C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64) 中的 signtool.exe 程序。使用命令提示符,我尝试手动运行它来签署我的应用程序,但是当我这样做时,什么也没发生:没有输出,没有错误消息。我还尝试在没有参数的情况下运行它,期望得到帮助消息或至少出现错误,但同样没有。
我去了另一台今天还没有收到任何 Windows 更新的计算机,找到了相同的文件并运行它:它运行良好。
我认为我的第一台计算机上的 .exe 文件一定有损坏,我从另一台计算机复制了该版本,但仍然失败。但是,如果我重命名文件,它就会运行。例如,如果我将它重命名为“signtool1.exe”,我就可以从命令行运行它就好了,尽管 Visual Studio 由于名称更改仍然无法运行它。
在此过程中,我确实尝试过多次重启我的计算机,我认为它的副本可能卡在内存中,但没有。我也在任务管理器中搜索过。
我以前从未见过这样的事情。根据可执行文件的名称,相同的程序运行或不执行任何操作。更详细一点,如果我将文件名复制到我的主目录,它实际上会运行而不考虑文件名。什么会导致这样的事情?
谢谢, 弗兰克
【问题讨论】:
Win10 在进程失败时不再显示崩溃对话框。您应该在程序员的机器上修复的东西。在应用程序事件日志中查找崩溃通知。 我遇到了同样的问题。我用下面@xperia64 的提示修复了它。但是,这个链接也可能是相关的Microsoft Admits Major Issues With Windows 10 KB453599 【参考方案1】:我发现不是重命名 signtool.exe,而是重命名/删除 signtool.exe.manifest 允许 signtool 运行,同时仍然允许 Visual Studio 运行它。
我不知道为什么会发生这种情况,也不知道删除清单的副作用是什么,但这足以让我的项目再次构建。
作为参考,我在干净的 Windows 10 1909 虚拟机中执行干净的 VS2019 安装后遇到了这个问题(但不久之后完全更新)。
【讨论】:
【参考方案2】:我遇到了同样的问题。 Signtool 不显示任何错误对话框,但返回的错误代码为 -1073741502 (0xC0000142),STATUS_DLL_INIT_FAILED。
问题可能与更新 KB4535996 有关。当我看到问题并且signtool正常工作时,我卸载了更新。重新安装更新后问题又出现了。
如果我将清单文件移出目录,Signtool 就可以工作,就像你看到的那样。但我也注意到,当我将清单移回目录时,signtool 可以工作。
【讨论】:
【参考方案3】:这是 Windows 反馈中心的Bug Report。 请为 KB4535996 错误报告投票。
【讨论】:
以上是关于Visual Studio 签名失败(signtool.exe 错误)的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2017 安装程序清单签名验证失败 怎么解决
win 7 装visual studio 2015出现问题, 没有验证对象的数字签名