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

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

由此,我得到:

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

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


当前回答

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

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

正如这篇文章所指出的,

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

其他回答

在我的情况下,我有错误的证书类型,我试图关联。我选择了“服务器认证”而不是“代码签名”。 您应该能够在预期用途部分的Certificate snap中看到这一点。在那之后,它就可以正常工作了。

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

我有一个类似的问题,我的计算机名已经改变,证书已经过期。我能够通过创建一个新的测试证书来解决这个问题。

在Visual Studio中,右键单击解决方案资源管理器中的项目。选择properties。选择“在属性窗口中签名”。点击“创建测试证书....”。输入测试证书的密码信息,单击“确定”。

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

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

正如这篇文章所指出的,

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

我有这个问题,我不完全确定下面的哪一步使它工作,但希望这有助于其他人…这就是我所做的:

Install the downloaded certificate (.crt) into certificates (I put it into “personal” store) - right click on .crt file and click Install Certificate. Run certmgr.msc and export the certificate (found in whichever store you used in the 1st step) as a pfx file including private key and extended properties Use the exported .pfx file when signing your project Example signtool: signtool sign /f "c:\mycert.pfx" /p mypassword /d "description" /t http://timestamp.verisign.com/scripts/timstamp.dll $(TargetPath) where the password is the same as provided during Export