2010-09-28 54 views
1

我想簽署Silverlight 4 OOB應用程序(XAP文件)。
我用下面的命令:無法簽署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文件不報告任何要添加的證書。

+0

達到保存的SL控制首次頁面時,它的瀏覽器彈出的消息?即使在簽署我的xap文件後,我也無法設置它,但它讓我感到困惑......您需要在簽署xap文件之前執行一些配置嗎? – 2012-04-02 19:33:27

回答

3

您是否嘗試過通過Silverlight項目的項目屬性中的簽名選項卡簽署應用程序?如果你的項目屬性和我的一樣,那裏實際上可能有兩個簽名標籤(其中一個是強大的命名組件) - 你想要的那個可能是第二個。以下鏈接解釋了簽署XAP的步驟:http://blogs.infosupport.com/blogs/alexb/archive/2010/05/10/silverlight-4-digitally-signing-a-xap.aspx。看看是否有助於解決問題。

另外請記住,只需簽署XAP是不夠的 - 您必須將證書導入到受信任的根存儲(它看起來並不像您正在做的那樣)。點擊簽名標籤中的更多詳情...按鈕。它可能會聲明此CA根證書不受信任。執行以下操作:

  • 點擊這個對話框
  • 安裝證書按鈕,選擇將下列存儲選項中的所有證書按鈕,然後單擊瀏覽按鈕
  • 選擇受信任的根證書頒發機構在樹中的項目
  • 按確定。

應出現另一個對話框,指出它已安裝。現在重新編譯你的應用程序,它應該工作正常。

希望這有助於...

克里斯

+0

證書已安裝,但不在受信任的根存儲中。驗證在我的機器上仍然失敗,但是xap在從站點安裝時出現簽名。 – 2010-09-29 08:16:35

+0

我也使用證書(Verisign)簽署了我的xap文件,但我無法在客戶端上設置正確的權限... xap文件看起來正確簽名,我該怎麼做錯了? – 2012-04-02 19:31:38