我正在尝试用我拥有的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错误:没有找到符合所有给定标准的证书。
我没有达到什么“标准”?这仅用于测试,因此这些是自签名证书。我尝试过导入密钥,然后对其进行签名,但它总是导致相同的错误。我怎么解决这个问题?
当前回答
我通过使用/sm标志来指定查找机器存储而不是默认的“我的(本地用户)”存储来解决这个问题。此外,使用/debug可以帮助打开signtool的调试功能。
其他回答
我通过使用/sm标志来指定查找机器存储而不是默认的“我的(本地用户)”存储来解决这个问题。此外,使用/debug可以帮助打开signtool的调试功能。
转到项目属性,在初始化编译之前取消选中Firm中的所有字段
标准包括帐户名(与之关联的私钥)、域、公司、到期日期、预期用途等等。
导致这个错误的原因有很多,其中一些已经列出了。这里还有一个提示:在导入证书时,请确保使用从证书颁发机构(CA)接收的原始文件,否则可能会丢失一些属性。
示例:最近,我试图导入从同一台机器上的另一个帐户导出的证书。证书对我的帐户可见,但没有与我的帐户相关联,因此signtool在没有明确提供文件名和密码的情况下拒绝识别它。当作为构建过程的一部分并显式地写入批处理文件或源文件时,可能不够安全。(导入ca颁发的原始证书就解决了这个问题。)
我也有同样的问题,读了一些答案(贴在这里),我看到我的证书过期了。
只需从我的启动项目创建一个新的。然后在证书管理器删除了过期的证书。
现在一切都编译好了。
只要取消项目属性中签名选项卡中的“Sign the click once manifest”,它就会删除错误,你可以从那里创建一个新的。