我正在尝试用我拥有的pfx文件签署Windows 8 appx包。我使用如下命令:
signtool.exe sign /fd sha256 /f "key.pfx" "app.appx"
由此,我得到:
SignTool错误:没有找到符合所有给定标准的证书。
我没有达到什么“标准”?这仅用于测试,因此这些是自签名证书。我尝试过导入密钥,然后对其进行签名,但它总是导致相同的错误。我怎么解决这个问题?
我正在尝试用我拥有的pfx文件签署Windows 8 appx包。我使用如下命令:
signtool.exe sign /fd sha256 /f "key.pfx" "app.appx"
由此,我得到:
SignTool错误:没有找到符合所有给定标准的证书。
我没有达到什么“标准”?这仅用于测试,因此这些是自签名证书。我尝试过导入密钥,然后对其进行签名,但它总是导致相同的错误。我怎么解决这个问题?
当前回答
在我的情况下,我有错误的证书类型,我试图关联。我选择了“服务器认证”而不是“代码签名”。 您应该能够在预期用途部分的Certificate snap中看到这一点。在那之后,它就可以正常工作了。
其他回答
标准包括帐户名(与之关联的私钥)、域、公司、到期日期、预期用途等等。
导致这个错误的原因有很多,其中一些已经列出了。这里还有一个提示:在导入证书时,请确保使用从证书颁发机构(CA)接收的原始文件,否则可能会丢失一些属性。
示例:最近,我试图导入从同一台机器上的另一个帐户导出的证书。证书对我的帐户可见,但没有与我的帐户相关联,因此signtool在没有明确提供文件名和密码的情况下拒绝识别它。当作为构建过程的一部分并显式地写入批处理文件或源文件时,可能不够安全。(导入ca颁发的原始证书就解决了这个问题。)
当通过Visual Studio得到这个错误时,这是因为有一个签名证书设置来匹配它最初开发的计算机。
您可以通过转到项目属性>签名选项卡并检查证书详细信息来检查这一点。
您可以取消选中“Sign the ClickOnce清单”以禁用签名。
如果您不想关闭此选项,则必须安装证书。
我在控制台应用程序开发中遇到了同样的问题,作为一个快速的解决方案,
那就去项目物业,
点击签名选项卡,取消选中“签名ClickOnce清单”。
图片描述:
供你参考,你也可以看到这个少于一分钟的视频解决方案。上面的图片是从视频中截取的。
如果你不需要签署应用程序,右键单击你的项目
项目属性->签名->取消勾选“签署ClickOnce清单”
正如这篇文章所指出的,
如果你使用的是Visual Studio 2008,目标是。net 3.5并使用自动更新,你只需更改证书并部署一个新版本,
同样的问题,原来是证书的私钥没有权限。 要修复-打开证书管理,找到您的证书,右键单击->管理私钥,然后在安全顶部确保您的用户被添加并给予权限,这为我修复了它。