无法签署XAP文件

时间:2010-09-28 16:16:42

标签: silverlight-4.0 code-signing thawte

我正在尝试签署Silverlight 4 OOB应用程序(XAP文件) 我使用以下命令:

"C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\signtool.exe" sign /v /f path\to\FILENAME.pfx /p PWD path\to\FILENAME.xap

我收到回复:

The following certificate was selected:
    Issued to: COMPANY NAME
    Issued by: Thawte Code Signing CA
    Expires:   Wed Dec 01 00:59:59 2010
    SHA1 hash: AE57AF01180BF995C7C5B01E235F296CCF611111

Done Adding Additional Store
Successfully signed: FILENAME.xap

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0

但是XAP文件没有签名 如果我在资源管理器中查看属性,则不会列出“数字签名”。如果我尝试安装它,我会得到未经验证的对话框 如果我使用完全相同的命令但是对于dll文件,签名工作正常,我可以看到应用于文件的数字签名。

这可能是什么原因?
我需要不同版本的signtool.exe吗?

如果重要的话,PFX最初是从XP机器导出的,我试图在Win7机器(用于开发)和Win2008服务器(构建机器)上运行它,并在两者上获得相同的行为。

修改
如果我验证签名DLL的​​证书,我得到以下内容:

SignTool Error: A certificate chain processed, but terminated in a root 
        certificate which is not trusted by the trust provider.

所以看起来我需要安装一些根证书。

但是,我不确定这解释了为什么XAP文件不报告任何添加的证书。

1 个答案:

答案 0 :(得分:3)

您是否尝试通过Silverlight项目的项目属性中的“签名”选项卡签署应用程序?如果您的项目属性与我的相似,那么实际上可能有两个签名选项卡(一个用于强力命名程序集) - 您想要的那个可能是第二个。以下是解释签署XAP的步骤的链接:http://blogs.infosupport.com/blogs/alexb/archive/2010/05/10/silverlight-4-digitally-signing-a-xap.aspx。看看这是否有助于解决问题。

还要记住,仅仅签署XAP是不够的 - 您必须将证书导入受信任的根存储(它看起来不像您正在做的那样)。单击“签名”选项卡中的“更多详细信息...”按钮。它可能会声明此CA根证书不受信任。执行以下操作:

  • 单击此对话框上的“安装证书”按钮
  • 在以下商店选项中选择“放置所有证书”按钮,然后单击“浏览...”按钮
  • 选择树中的“受信任的根证书颁发机构”项目
  • 按OK。

应出现另一个对话框,说明它已安装。现在重新编译你的应用程序,它应该可以正常工作。

希望这会有所帮助......

克里斯