我正在尝试用我拥有的pfx文件签署Windows 8 appx包。我使用如下命令:

signtool.exe sign /fd sha256 /f "key.pfx" "app.appx"

由此,我得到:

SignTool错误:没有找到符合所有给定标准的证书。

我没有达到什么“标准”?这仅用于测试,因此这些是自签名证书。我尝试过导入密钥,然后对其进行签名,但它总是导致相同的错误。我怎么解决这个问题?


当前回答

转到项目属性,在初始化编译之前取消选中Firm中的所有字段

其他回答

我的问题是我不理解signtool选项。我为/n选项提供了与我的证书不匹配的东西。当我把它拿掉时,它就不再抱怨了。

请始终先检查您的证书有效期,因为大多数证书都有有效期。在我的情况下,证书已经过期,我正在试图建立项目。

标准包括帐户名(与之关联的私钥)、域、公司、到期日期、预期用途等等。

导致这个错误的原因有很多,其中一些已经列出了。这里还有一个提示:在导入证书时,请确保使用从证书颁发机构(CA)接收的原始文件,否则可能会丢失一些属性。

示例:最近,我试图导入从同一台机器上的另一个帐户导出的证书。证书对我的帐户可见,但没有与我的帐户相关联,因此signtool在没有明确提供文件名和密码的情况下拒绝识别它。当作为构建过程的一部分并显式地写入批处理文件或源文件时,可能不够安全。(导入ca颁发的原始证书就解决了这个问题。)

如果你不需要签署应用程序,右键单击你的项目

项目属性->签名->取消勾选“签署ClickOnce清单”

正如这篇文章所指出的,

如果你使用的是Visual Studio 2008,目标是。net 3.5并使用自动更新,你只需更改证书并部署一个新版本,

我使用的数字令牌,必须被识别为“Microsoft usbcid -智能卡- leser (WUDF)”。

如果没有,我得到这个错误消息'没有找到符合所有给定标准的证书…'。 这让我毫不费力地在SignTool选项和证书属性中搜索了很长时间。所以我希望它能帮助到一些人:-)