我正在尝试使用Visual Studio 2012 Express为我的appx文件签署一个Windows应用商店应用,但收到以下错误:
SignTool Error: The specified algorithm cannot be used or is invalid
我正在通过STORE->创建应用包菜单运行该过程,因此我无法直接访问SignTool的参数。
起初我以为是因为它使用了我们其他开发人员的自签名证书,所以我改为使用我们的真实证书,但仍然遇到同样的问题。
任何可能导致此问题以及如何解决问题的想法?
编辑:怀疑问题是我们的普通证书不支持SHA-256,所以我在Visual Studio中创建了一个新的测试证书,但结果相同。
EDIT2:验证我的appx包中的哈希算法是SHA256,尝试使用以下命令手动运行SignTool:
SignTool sign /a /f My_TemporaryKey.pfx /fd SHA256 /v /debug MyAppPackage.appx
同样的错误,控制台消息中没有有用的信息。
答案 0 :(得分:0)
当您尝试对应用程序进行签名的PC中未安装证书时,就会发生这种情况。
在PC上安装.pfx
文件,然后尝试再次对应用程序进行签名。要安装该应用程序,请右键单击证书,然后单击“安装”。然后按照以下步骤将其安装在本地计算机中。
答案 1 :(得分:0)
就我而言,在旧版 Windows XP 开发计算机上使用当前公司证书成功地执行了数十个可执行文件文件签名后,我开始遇到相同的错误,这似乎具有误导性。
要解决此问题,我必须更改通常的时间戳服务器,这是 SignTool 的可选参数 / t 或 / tr ,为suggested by Daniel Georgiev。在这种情况下,我选择了http://timestamp.comodoca.com
该解决方案如下,因为我通常将公司的证书导入到我的 Windows用户证书存储区(*)中。
(*)导入证书后,在签名过程中不再需要指定.pfx。
Signtool.exe sign /t http://timestamp.comodoca.com /a /n "FileToBeSigned.exe" /v "MyExeFullPath"
万一仍然失败,我建议您检查一下这个昂贵的Alternative Timestamp Servers