共用應用程式套件 (Windows 市集應用程式)

根據預設,Visual Studio 產生的所有應用程式套件都會以測試憑證簽署。當您建立套件時,Visual Studio 會自行產生包含已簽署套件的資料夾。該資料夾內的憑證檔 (.cer) 包含用來簽署套件的公開金鑰。這個金鑰必須在安裝應用程式套件之前,先安裝到電腦上。

產生測試憑證

專案建立完成時,會產生憑證檔案 (.pfx) 並將其加入至專案。

憑證的 [主旨] 欄位會設定為來源資訊清單 (.appxmanifest) 檔案中 Identity 項目的 Publisher 屬性。

  • 如果您建立本機套件,Publisher 屬性的預設值會是您的使用者名稱。

  • 如果是為 Windows 市集建立套件或是讓應用程式與它產生關聯,則當您在建立套件期間登入時,Publisher 屬性會設定為您在 市集 的開發人員帳戶取得的 Publisher ID。

建立憑證的過程中也會將一個屬性加入至專案檔:

<PackageCertificateKeyFile> RisingStar_TemporaryKey.pfx </PackageCertificateKeyFile>

PackageCertificateKeyFile 的值是來源憑證本身的相對路徑或完整路徑。

如果憑證遺失,則會在從 [市集] 功能表建置套件時建立憑證,但是在命令提示字元中建置套件時,不會建立憑證。Visual Studio 建立憑證時,會設定下列屬性的值:

  • [基本限制] 延伸的值會設為 [主體類型=終端實體]。

    注意事項注意事項

    基本限制延伸可識別憑證的主體是否為憑證授權單位 (CA)。這個延伸也定義包含這個憑證的有效憑證路徑的最大深度。[基本限制] 屬性會指定檢定的公開金鑰是否可驗證憑證簽章。

  • [增強金鑰使用方法] (EKU) 延伸的值會設為 [程式碼簽署]。

憑證有效期為自建立日期起一年。如需如何更新憑證的詳細資訊,請參閱更新憑證

提示

如果在簽署過程中出現了類似於「指定的憑證無效,因為它已過期或有其他問題」的錯誤,請使用資訊清單設計工具來建立可取代舊憑證的測試憑證。

驗證憑證

在封裝期間,Visual Studio 會以下列方式驗證指定的憑證:

  • 驗證 [基本限制] 延伸以及它的值是否存在,該值必須為 [主體類型=終端實體] 或非特定。

  • 驗證 [增強金鑰使用方法] 屬性的值,該值必須包含 [程式碼簽署],也可以包含 [永久簽署]。禁止使用任何其他 EKU。

  • 驗證 [KeyUsage (KU)] 屬性的值,該值必須是 [Unset] 或 [DigitalSignature]。

  • 確認私密金鑰確實存在。

  • 確認憑證是否為使用中、未過期及未撤銷。

在某些情況下,您可能需要更進一步控制使用的憑證,因此需要掌控要對憑證執行哪些驗證檢查。MSBuild 屬性 EnableSigningChecks 會控制要執行上述哪一項憑證檢查。如果您將屬性設為 True (預設值),則 Visual Studio 會執行所有檢查。如果您將屬性設為 False,則 Visual Studio 只會執行下列工作:

  • 確認私密金鑰是否存在。

  • 確認 [增強金鑰使用方法] 屬性的值是否包含 [程式碼簽署]。

  • 確認憑證是否為使用中、未過期及未撤銷。

注意事項注意事項

當 EnableSignignChecks 設為 False 時,PowerShell 指令碼可能無法運作,因為自訂憑證可能不符合指令碼安裝應用程式套件時要求的所有規則。如需詳細資訊,請參閱在本機共用應用程式套件 (Windows 市集應用程式)

選擇替代憑證

當建立專案時,Visual Studio 會自動建立憑證,不過,您也可以建立自己的憑證或使用現有的憑證來簽署套件。

建立或使用替代憑證

  1. 在 [方案總管] 中,開啟 .appxmanifest 檔案的捷徑功能表,選擇 [開啟方式],然後選擇 [應用程式資訊清單設計工具]。

  2. 在 [應用程式資訊清單設計工具] 中,選擇 [封裝] 索引標籤,然後選擇 [選擇憑證] 按鈕。

  3. 在 [選擇憑證] 對話方塊中,展開 [設定憑證] 清單,然後選擇下列其中一個選項:

    • 從憑證存放區挑選
      從作業系統中的憑證存放區,挑選您的其中一個 Personal 憑證。

    • 從檔案選取
      從檔案系統中挑選現有的憑證檔。

    • 建立測試憑證
      使用您選擇的 Publisher ID 來建立憑證。您也可以建立密碼。

無論您選擇哪一個選項,憑證檔都會加入至專案,並據以更新 PackageCertificateThumbprint 和 PackageCertificateKeyFile 專案屬性。

注意事項注意事項

如果在簽署過程中出現了類似於「指定的憑證無效,因為它已過期或有其他問題」的錯誤,請使用資訊清單設計工具來建立可取代舊憑證的自訂憑證。

更新憑證

Visual Studio 產生的預設憑證會在該憑證建立日期後的一年到期。在憑證到期前,您必須使用 [應用程式資訊清單設計工具] 來重新產生憑證,或如先前的程序所述,提供不同的有效憑證。

更新憑證

  1. 在 [方案總管] 中,開啟 .appxmanifest 檔案的捷徑功能表,選擇 [開啟方式],然後選擇 [應用程式資訊清單設計工具]。

  2. 在 [應用程式資訊清單設計工具] 中,選擇 [封裝] 索引標籤,然後選擇 [選擇憑證] 按鈕。

  3. 在 [選擇憑證] 對話方塊中,展開 [設定憑證] 清單,然後選擇 [建立測試憑證]。

  4. 在 [建立測試憑證] 對話方塊中,按一下 [確定] 按鈕。

    Visual Studio 便會以新的到期日重新產生憑證。

刪除或匯出憑證

您可能要刪除或匯出已經過期或是已經受到威脅、損壞或由另一個憑證取代的憑證。如需如何刪除或匯出憑證的詳細資訊,請參閱如何使用憑證主控台

修改安裝的應用程式

如果已安裝的封裝中有任何檔案已修改,則簽署驗證可能會讓應用程式無法啟動。若要修改封裝,請使用開發人員授權在原始程式檔中進行變更,然後重新部署修改過的封裝。如需開發人員授權的詳細資訊,請參閱取得開發人員授權 (Windows 市集應用程式)

請參閱

概念

覆寫封裝資訊清單 (Windows 市集應用程式)

使用 Visual Studio 2012 封裝您的 Windows 市集應用程式