扁平捆綁應用程式套件

重要

這項功能適用於企業應用程式部署,且不支援提交至市集的應用程式。

扁平封裝是一種更佳的方式來封裝應用程式的套件檔案。 典型的 Windows 應用程式套件檔案採用多層次封裝結構,應用程式套件檔案必須包含在套件中,而扁平套件則透過只參考應用程式套件檔案,避免了這種需求,讓它們能置於應用程式套件之外。 由於應用程式套件檔案已不再包含在套件組合中,因此可以平行處理,這會導致上傳時間降低、發佈速度較快(因為每個應用程式套件檔案都可以同時處理),最終更快速地進行開發反覆專案。

扁平組合示意圖

扁平化套件組合的另一個優點是需要建立較少的套件。 由於只參考應用程式套件檔案,如果套件未在兩個版本之間變更,則兩個版本的應用程式可以參考相同的套件檔案。 這可讓您在建置下一個應用程式版本的套件時,只建立已變更的應用程式套件。 根據預設,扁平包將會參考與自身位於相同資料夾中的應用程式套件檔案。 不過,此參考可以變更為其他路徑(相對路徑、網路共用和 HTTP 位置)。 若要這樣做,您必須在扁平式套件組合建立期間直接提供BundleManifest。

如何建立扁平套件

您可以使用 MakeAppx.exe 工具來建立一般套件組合,或使用封裝配置來定義套件組合的結構。

使用MakeAppx.exe

若要使用 MakeAppx.exe 建立一般套件組合,請像往常一樣使用 “MakeAppx.exe bundle” 命令,但搭配 /fb 參數來產生一般應用程式套件組合檔案(這將會非常小,因為它只會參考應用程式套件檔案,且不包含任何實際承載)。

以下是命令語法的範例:

MakeAppx bundle [options] /d <content directory> /fb /p <output flat bundle name>

如需使用MakeAppx.exe的詳細資訊,請參閱 使用 MakeAppx.exe 工具建立應用程式套件。

使用包裝佈局

或者,您可以使用包裝佈局來建立平面套件。 若要這樣做,請將 App 套件組合指令清單的 PackageFamily 元素中的 FlatBundle 屬性設定為 true。 若要深入瞭解封裝配置,請參閱 使用封裝配置建立套件。

如何部署扁平套件

部署一般套件組合之前,每個應用程式套件(除了應用程式套件組合外)都必須使用相同的憑證進行簽署。 這是因為所有應用程式套件檔案 (.appx/.msix) 現在都是獨立的檔案,而且不再包含在應用程式套件組合中 (.appxbundle/.msixbundle) 檔案中。

簽署套件之後,您可以透過下列其中一個選項來安裝應用程式:

  • 按兩下應用程式套件組合檔案,以使用應用程式安裝程式進行安裝。
  • 在 PowerShell 中使用 Add-AppxPackage Cmdlet,並指定應用程式套件匯束檔案(假設應用程式套件已在應用程式匯束預設的位置)。

您無法單獨部署平面包中的個別 .appx/.msix 套件。 它們必須透過 .appxbundle/.msixbundle 進行部署。 不過,您可以在初始安裝之後更新平面套件組合中的個別 .appx/.msix 套件。 如果您更新個別的 .appx/.msix 套件,您也需要更新平面套件組合的清單檔。

例如,如果您的 v1 一般套件組合是由 .msixbundle、x86 .msix、x64 .msix 和 asset .msix 所組成,而且您知道 v2 套件組合只有資產套件的變更,則只需要建置 .msixbundle 和資產 .msix 才能安裝更新。 您必須建置 v2 的 .msixbundle,因為套件組合會追蹤其 .msix 套件的所有版本。 藉由將資產 .msix 的版本提升到 v2,您需要一個包含此新參考的新 .msixbundle。 v2 .msixbundle 可以包含 v1 x86 .msix 和 x64 .msix 的參考,扁平套件的 .msix 套件不需要具有相同的版本號。