一个错误出现在签名时。

85

我维护一个大型的WPF应用程序,这是我从另一位开发人员那里接手的。我使用ClickOnce进行发布。但是,今天突然出现了一个错误消息:

Error 2 无法发布,因为一个项目构建失败。 1 1
Error 3 签名时出现错误:未能签署bin\Debug\app.publish\setup.exe。SignTool错误:找不到符合所有给定条件的证书。

我确实有一个名为SomeName.snk的文件,在项目设置的 Signing 标签中被引用。我不知道今天发生了什么导致了这个问题。我使用的是VS 2012。


你是如何获取错误的完整描述的? 我也使用ClickOnce并直接从VS2019中发布。我只得到“在签名时发生错误:无法签名bin\Release\app.publish\setup.exe。”我的问题可能不是由于给定的证书,因为相同的证书可以用于从其他计算机签署相同的项目,并且当使用新生成的测试证书时,我也会收到相同的错误。直到今天,我从未遇到过任何问题,原因不明。 - Ama
@Ama 抱歉,我不记得了。那是很多年前的事情了... - David Shochet
12个回答

235

进入主项目 属性 > 签名 > 如果过期日期已过期 > 单击 创建测试证书,密码不是必需的,然后你就完成了。


6
这是解决问题的方法。 - JohnnyBizzle
我想知道为什么VS中有这个功能,以及在创建我的应用程序时如何将其关闭。 - Hassanation
17
@Hassanation,您可以通过在Antoine提到的属性框的签名部分中取消选中“签署ClickOnce清单”复选框来关闭此功能。 - nam

66

我会检查证书是否已过期。大多数(或全部)证书都有一个过期日期。


我尝试了这里提供的所有解决方案,包括你提供的,但是都没有起作用! - codegrid

6

我在VS2017 .net安装后安装Visual C++时遇到了问题。通过取消“属性” ->“安全性” ->“启用ClickOnce安全设置”,我解决了这个问题。

然后它创建了一个app.manifest文件。之后错误就消失了。有趣的是,我再次检查它,发现问题没有再次出现。


5

进入主项目(启动项目),右键单击>属性 然后进入签名 然后取消选中“签署ClickOnce清单” 这对我起作用了。


5

4
尽管这个链接可能回答了问题,但最好在此处包含答案的重要部分,并提供链接以供参考。如果链接页面更改,仅有链接的答案可能会失效。-【来自审查】 - Vadim Martynov
@VadimMartynov 链接已经失效。我会找到一个好的链接或者删除它。 - paparazzo

5

进入主项目属性 > 签名 > 从商店中选择...
单击证书属性
并安装证书


4
如果您的特定项目证书已过期或存在某些问题,则会发生这种情况。
右键单击项目 -> 属性 -> 签名选项卡 -> 更多详细信息按钮 -> 显示您的证书详细信息。检查您的证书是否已过期。 解决方法: 1. 取消“签署ClickOnce清单”选项,然后尝试重新运行。 2. 通过创建测试证书来延长证书的有效期(如果您的证书已过期)。
  • 点击“创建测试证书...”按钮
  • 输入您的凭据(非必需)
  • 保存
3. 重新验证您现有的证书(如果您的证书尚未过期)。
  • 点击“从文件选择”按钮并使用您现有的密钥文件(例如.pfx)

或者

  • 点击“从存储中选择”按钮,并从可用选项中进行选择
提示:如果仍然遇到构建项目的问题,请尝试重新启动Visual Studio。
希望这可以帮助您。

3

我曾经遇到过相同的问题,通过移除或更改时间戳服务器URL解决了该问题。在删除后,项目构建成功。

在此输入图片描述


http://timestamp.sectigo.com 确实存在问题:https://dev59.com/4lIG5IYBdhLWcg3w8Wiu - Ama

2
我今天遇到了这个问题。在我的情况下,它是由于这个Microsoft Windows Update引起的。
我卸载了这个更新,发布开始像以前一样工作。这只是一个临时解决方法,意味着你应该重新生成你的密钥/证书。

1
在我的情况下,证书并未过期,其他解决方案均无效(重新启动 VS、使用临时测试证书、重新启动计算机等)。
通过删除输出目录并重新构建来解决问题。

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