共用方式為


MSIX 持續性身分識別

這項功能可讓您使用新的憑證簽署套件,同時仍維護應用程式的更新體驗。 換句話說,這可讓套件在平臺中保存其舊套件身分識別,而不需要使用舊憑證簽署。 從 Windows Insider Preview 組建 22000 開始,必須建立成品,才能顯示舊憑證與用於簽署的新憑證之間的關聯性。 以下是如何使用套件身分識別來保存以維護更新體驗的逐步說明。

需求

  • 透過 Windows SDK 取得 MakeAppx.exe。 此功能目前可在 Windows SDK Preview 22000 中使用
  • 透過 Windows SDK 取得 SignTool.exe。 此功能目前可在 Windows SDK Preview 22000 中使用
  • 用來簽署原始套件的舊憑證 (CN=Old)
  • 將用來簽署套件的新憑證 (CN=New)

逐步解說

這是如何在維護套件身分識別的同時,使用新憑證簽署套件的逐步指示。

建立成品

  1. 撰寫詳細說明新發行者的 XML 成品。 將它命名為您想要的任何專案,artifact.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Publisher xmlns="http://schemas.microsoft.com/appx/publisherbridging/2021" Old="CN=Old" New="CN=New" />
  1. 撰寫目錄定義檔 (CDF) 以建立將用來簽署成品的目錄。 將它命名為您想要的任何專案,artifact.cdf:
[CatalogHeader]
Name=artifact.cat
CatalogVersion=2
HashAlgorithms=SHA256

[CatalogFiles]
<HASH>artifact.xml=artifact.xml
  1. 在此CDF上執行makecat.exe。 它會建立其中指定的檔案
makecat.exe artifact.cdf
  1. 使用舊憑證簽署目錄
signtool.exe sign /f old-cert.pfx /fd SHA256 artifact.cat

此時,您只需要在此之後保留 XML 和 CAT 檔案。 您可以建立數個成品,不過平臺目前最多支援5個。

注意

我們建議您將目錄檔案的時間戳。 如果目錄沒有時間戳,則舊憑證到期的那一刻,成品就會變成無用的。

建立套件

  1. 建立發行者橋接檔案,告知makeappx.exe 要使用的成品。 這個檔案就像對應檔案。 將其命名為您想要的任何專案,artifacts.txt
[PublisherBridging]
"artifact.xml" "artifact.cat"

每一行都必須包含一對 XML 和 CAT 檔案路徑。 成品必須在套用時排序。 如果您有兩個成品,一個用於發行者1-Publisher2>,另一個用於 Publisher2-Publisher3,您必須先列出 Publisher1-Publisher2>> 的成品

  1. 使用 /pb 旗標呼叫 makeappx.exe 以指向發行者橋接檔案:
makeappx.exe pack /p app.msix /d .\app\ /pb artifacts.txt
  1. 使用新憑證簽署您的套件
signtool.exe sign /f new-cert.pfx /fd SHA256 app.msix

現在,您有一個套件,其內已儲存成品,且已使用新的憑證簽署。 您可以像任何其他 MSIX 套件一樣部署套件。

考量

  • 我們建議您將目錄設定為時間戳。 若要這樣做,您必須在目錄路徑之前,在 signtool 呼叫中新增這些自變數:/td SHA256 /tr

  • 您仍然需要在機器上安裝舊憑證(建議使用時間戳),平臺才能安裝由新憑證簽署的套件。

  • 若要利用這項功能,您必須在舊憑證過期之前執行這項操作。

  • 此功能適用於 MSIX 套件和 MSIX 套件組合