共用方式為


MSIX 應用程式的應用程式套件需求

需求

請遵循這些指導方針來準備應用程式的套件,以提交至 Microsoft Store。

建置 Microsoft Store 應用程式套件之前

請務必使用 Windows 應用程式認證套件來測試您的應用程式。 我們也建議您在不同類型的硬體上測試您的應用程式。 請注意,在我們認證您的應用程式並使其可從 Microsoft Store 取得之前,它只能安裝在具有開發人員授權的電腦上並執行。

使用 Microsoft Visual Studio 建置應用程式套件

如果您使用 Microsoft Visual Studio 做為開發環境,則已經有內建工具,可讓建立應用程式套件成為快速且簡單的程式。 有關詳細資訊,請參閱封裝應用程式

注意

請確定您的所有檔名都使用 ANSI。

當您在 Visual Studio 中建立套件時,請確定您已使用與您開發人員帳戶相關聯的相同帳戶登入。 套件資訊清單的某些部分有與您的帳戶相關的特定詳細資料。 系統會自動偵測並新增這項資訊。 若未將其他資訊新增至資訊清單,您可能會遇到套件上傳失敗。

當您建置應用程式的 UWP 套件時,Visual Studio 可以建立 .msix 或 appx 檔案,或 .msixupload 或 .appxupload 檔案。 針對 UWP 應用程式,建議您一律在套件頁面中上傳 .msixupload 或 .appxupload 檔案。 如需封裝適用於 Store 的 UWP 應用程式的詳細資訊,請參閱使用 Visual Studio 封裝 UWP 應用程式

您的應用程式套件不需要使用跟在受信任證書頒發機構單位中的憑證進行簽署。

應用程式套件組合

針對 UWP 應用程式,Visual Studio可以產生應用程式套件組合 (.msixbundle 或 .appxbundle),以減少使用者下載的應用程式大小。 如果您已定義語言特定的資源、各種影像比例資源或適用於特定版本的 Microsoft DirectX 的資源,這會很有幫助。

注意

 一個應用程式套件組合可以包含所有架構的套件。

使用應用程式套件組合時,使用者只會下載相關的檔案,而不是所有可能的資源。 有關應用程式套件的詳細資訊,請參閱封裝應用程式使用 Visual Studio 封裝 UWP 應用程式

手動建置應用程式套件

如果您未使用 Visual Studio 來建立套件,則必須手動建立套件資訊清單。

請務必檢閱應用程式套件資訊清單文件,以瞭解完整的資訊清單詳細資訊和要求。 您的資訊清單必須遵循套件資訊清單架構,才能通過認證。

您的資訊清單必須包含一些關於您的帳戶和應用程式的特定資訊。 您可以在儀錶板中應用程式概觀頁面的 [產品管理] 區段中查看檢視應用程式身分識別詳細數據,以找到此資訊。

注意

 資訊清單中的值會區分大小寫。 空格和其他標點符號也必須相符。 仔細輸入這些值,並加以檢閱,以確保它們正確無誤。

應用程式套件組合 (.msixbundle 或 .appxbundle) 使用不同的資訊清單。 如需應用程式套件組合資訊清單的詳細資料和需求,請檢閱套件組合資訊清單。 請注意,在 .msixbundle 或 .appxbundle 中,每個包含套件的資訊清單都必須使用相同的元素和屬性,但 Identity 元素的 ProcessorArchitecture 屬性除外。

提示

 提交套件之前,請務必執行 Windows 應用程式認證套件 。 這可協助您判斷您的資訊清單是否有任何可能導致認證或提交失敗的問題。

套件格式需求

您的應用程式套件必須符合這些需求。

應用程式套件屬性 需求
封裝大小 .msixbundle 或 .appxbundle:每個套件組合最多 25 GB
以 Windows 10 或 Windows 11 為目標的 .msix 或 .appx 套件:每個套件上限為 25 GB
封鎖對應雜湊 SHA2-256 演算法

支援的版本

針對 UWP 應用程式,所有套件都必須以 Store 支援的 Windows 10 或 Windows 11 版本為目標。 您的套件支援的版本必須在應用程式資訊清單的 TargetDeviceFamily 元素的 MinVersionMaxVersionTested 屬性中指明。

StoreManifest XML 檔案

StoreManifest.xml 是可能包含在應用程式套件中的選擇性組態檔。 其用途是啟用功能,例如將您的應用程式宣告為 Microsoft Store 裝置應用程式,或宣告套件相依於裝置的需求,套件資訊清單未涵蓋。 如果使用,StoreManifest.xml 會與應用程式套件一起提交,且必須位於您應用程式主要專案的根資料夾中。 有關詳細資訊,請參閱StoreManifest 配置

封裝版本編號

您所提供的每個套件都必須有版本編號 (在應用程式資訊清單中 套件/身分識別元素的版本屬性中提供值)。 Microsoft Store 強制執行與版本編號相關的某些規則,這些規則在不同作業系統版本中的運作方式略有不同。

注意

本主題指的是「套件」,但除非另有說明,否則相同的規則適用於 .msix/.appx 和 .msixbundle/.appxbundle 檔案的版本編號。

Windows 10 和 11 套件的版本編號

重要

對於 Windows 10 或 Windows 11 (UWP) 套件,版本編號的最後 (第四) 部分保留供 Store 使用,在建立套件時必須保留為 0 (儘管 Store 可能會變更此部分中的值)。 其他部分必須設定為介於 0 到 65535 之間的整數 (但第一個部分不能為 0 除外)。

從已發佈的提交中選擇 UWP 套件時,Microsoft Store 一律會使用適用於客戶 Windows 10 或 Windows 11 裝置的最高版本套件。 這為您提供了更大的靈活性,並使您可以控制向特定裝置類型的客戶提供哪些套件。 重要的是,您可以依任何順序提交這些套件;您不限於在每個後續提交中提供更高版本的套件。

您可以提供多個具有相同版本編號的 UWP 套件。 不過,共用版本編號的套件不能也有相同的架構,因為 Store 針對每個套件使用的完整身分識別必須是唯一的。 如需詳細資訊,請參閱身分識別

當您提供多個使用相同版本編號的 UWP 套件時,架構 (依 x64、x86、Arm、中性的順序) 將用來決定哪一個排名較高 (當 Store 決定要提供給客戶的裝置之套件時)。 使用相同版本編號的排名應用程式套件組合時,會考慮套件組合內最高的架構排名:包含 x64 套件的應用程式套件組合的排名會高於只包含 x86 套件的應用程式套件組合。

這為您提供了很大的靈活性,可以隨著時間的推移改善您的應用程式。 您可以上傳並提交使用較低版本編號的新套件,以新增您先前不支援的 Windows 10 或 Windows 11 裝置支援,您可以新增具有更嚴格相依性的較高版本套件,以利用硬體或 OS 功能,也可以新增具有更嚴格相依性的較高版本套件,以做為部分或所有現有客戶群的更新。

下列範例說明如何管理版本編號,以透過多個提交將預期的套件傳遞給您的客戶。

範例:透過多個提交移至單一套件

Windows 10 可讓您撰寫可在任何地方執行的單一程式碼基底。 這可讓啟動新的跨平台專案變得更容易。 不過,出於許多原因,您可能不想合併現有的程式碼基底以立即建立單一專案。

您可以使用套件版本設定規則,逐漸將您的客戶移至通用裝置系列的單一套件,同時為特定裝置系列運送一些過渡性更新 (包括利用 Windows 10 API 的更新)。 下列範例說明相同應用程式一系列提交的相同規則如何一致地套用。

提交 目錄 客戶體驗
1 - 套件版本:1.1.10.0
- 裝置系列:Windows.Desktop、minVersion 10.0.10240.0
- Windows 10 和 11 Desktop 組建 10.0.10240.0 和更新版本的裝置將得到 1.1.10.0
- 其他裝置系列將無法購買並安裝應用程式
2 - 套件版本:1.1.10.0
- 裝置系列:Windows.Desktop、minVersion 10.0.10240.0

- 套件版本:1.0.0.0
- 裝置系列:Windows.Universal、minVersion 10.0.10240.0
- Windows 10 和 11 Desktop 組建 10.0.10240.0 和更新版本的裝置將得到 1.1.10.0
- 引進其他 (非桌面) 裝置系列時將得到 1.0.0.0
- 已安裝應用程式的桌面裝置不會看到任何更新(因為它們已經有可用的 1.1.10.0 版,且高於 1.0.0.0 版)
3 - 套件版本:1.1.10.0
- 裝置系列:Windows.Desktop、minVersion 10.0.10240.0

- 套件版本:1.1.5.0
- 裝置系列:Windows.Universal、minVersion 10.0.10250.0

- 套件版本:1.0.0.0
- 裝置系列:Windows.Universal、minVersion 10.0.10240.0
- Windows 10 和 11 Desktop 組建 10.0.10240.0 和更新版本的裝置將得到 1.1.10.0
- 使用組建 10.0.10250.0 和更新版本引進的其他 (非桌面) 裝置系列將得到 1.1.5.0
- 當組建 >=10.0.10240.0 和 < 10.010250.0 引進時,其他 (非桌面) 裝置會得到 1.1.0.0
- 已安裝應用程式的桌面裝置不會看到任何更新(因為它們已有最可用的 1.1.10.0 版,高於 1.1.5.0 和 1.0.0.0 版)
4 - 套件版本:2.0.0.0
- 裝置系列:Windows.Universal、minVersion 10.0.10240.0
- Windows 10 和 11 組建 v10.0.10240.0 及更新版本上所有裝置系列的所有客戶都會取得套件 2.0.0.0

注意

 在所有情況下,客戶裝置都會收到套件,該套件具有符合資格的最高可能版本編號。 例如,在上述第三個提交中,所有桌面裝置都會取得 v1.1.10.0,即使它們具有 OS 10.0.10250.0 版或更新版本,因此也可以接受 v1.1.5.0。 由於 1.1.10.0 是可用版本編號最高的版本編號,也就是它們將取得的套件。

使用版本編號來復原至先前隨附的套件以進行新的取得

如果您保留套件的複本,如果應該發現發行的問題,可以選擇將 Store 中的應用程式套件復原至舊版 Windows 10 套件。 這是一種暫時的方式,可讓您在需要時間修正問題時限制客戶的中斷。

若要這樣做,請建立新的提交。 移除有問題的套件,並上傳您想要在 Store 中提供的舊套件。 已收到您回復之套件的客戶仍然會有有問題的套件 (因為您的舊版套件會有較早的版本編號)。 但這將會阻止其他人取得有問題的套件,同時允許應用程式仍可在 Store 中使用。

若要修正已收到問題套件的客戶問題,您可以提交新的 Windows 10 套件,該套件的版本編號比不正確的套件儘快高。 在提交通過認證程序之後,所有客戶都會更新為新的套件,因為它會有較高的版本編號。

支援的語言

您可以使用超過 100 種語言將應用程式提交至 Microsoft Store。

若要深入瞭解如何在應用程式中設定語言,請參閱全球化和當地語系化瞭解使用者設定檔語言和應用程式資訊清單語言。 我們也有多種語言應用程式工具套件,可協助您撰寫支援多種語言的應用程式。

支援的語言清單

這些是 Microsoft Store 支援的語言。 您的應用程式必須至少支援其中一種語言。

Store 不支援此處未包含的語言代碼。 我們建議您不要包含以下列語言代碼為目標的套件;這類套件不會發佈給客戶,而且可能會導致認證延遲或失敗。

語言名稱 支援的語言代碼:
阿拉伯文 ar、ar-sa、ar-ae、ar-bh、ar-dz、ar-eg、ar-iq、ar-jo、ar-kw、ar-lb、ar-ly、ar-ma、ar-om、ar-qa、ar-sy、ar-tn、ar-ye
南非荷蘭文 af、af-za
阿爾巴尼亞文 sq、sq-al
阿姆哈拉文 am、am-et
亞美尼亞文 hy、hy-am
阿薩姆文 as、as-in
亞塞拜然文 az-arab、az-arab-az、az-cyrl、az-cyrl-az、az-latn、az-latn-az
巴斯克文 (巴斯克) eu、eu-es
白俄羅斯文 be、be-by
孟加拉文 bn、bn-bd、bn-in
波士尼亞文 bs、bs-cyrl、bs-cyrl-ba、bs-latn、bs-latn-ba
保加利亞文 bg、bg-bg
加泰蘭文 ca、ca-es、ca-es-valencia
柴羅基文 chr-cher、chr-cher-us、chr-latn
中文 (簡體) zh-Hans、zh-cn、zh-hans-cn、zh-sg、zh-hans-sg
中文 (繁體) zh-Hant、zh-hk、zh-mo、zh-tw、zh-hant-hk、zh-hant-mo、zh-hant-tw
克羅埃西亞文 hr、hr-hr、hr-ba
捷克文 cs、cs-cz
丹麥文 da、da-dk
達利文 prs、prs-af、prs-arab
荷蘭文 nl、nl-nl、nl-be
英語 en、en-au、en-ca、en-gb、en-ie、en-in、en-nz、en-sg、en-us、en-za、en-bz、en-hk、en-id、en-jm、en-kz、en-mt、en-my、en-ph、en-pk、en-tt、en-vn、en-zw、en-053、en-021、en-029、en-011、en-018、en-014
愛沙尼亞文 et、et-ee
菲律賓文 fil、fil-latn、fil-ph
芬蘭文 fi、fi-fi
法文 fr、fr-be、fr-ca、fr-ch、fr-fr-fr、fr-lu、fr-015、fr-cd、fr-ci、fr-cm、fr-ht、fr-ma、fr-mc、fr-ml、fr-re、frc-latn、frp-latn、fr-155、fr-029、fr-021、fr-011
加利西亞文 gl、gl-es
喬治亞文 ka、ka-ge
德文 de、de-at、de-ch、de-de、de-lu、de-li
希臘文 el、el-gr
古吉拉特文 gu、gu-in
豪撒文 ha、ha-latn、ha-latn-ng
希伯來文 he、he-il
印度文 hi、hi-in
匈牙利文 hu、hu-hu
冰島文 is、is-is
伊布文 ig-latn、ig-ng
印尼文 id、id-id
Inuktitut (Latin) iu-cans、iu-latn、iu-latn-ca
愛爾蘭文 ga、ga-ie
科薩文 xh、xh-za
祖魯文 zu、zu-za
義大利文 it、it-it、it-ch
日文 ja 、ja-jp
坎那達文 kn、kn-in
哈薩克文 kk、kk-kz
高棉文 km、km-kh
K'iche' quc-latn、qut-gt、qut-latn
盧安達文 rw、rw-rw
KiSwahili sw、sw-ke
貢根文 kok、kok-in
韓文 ko、ko-kr
庫德語 ku-arab、ku-arab-iq
吉爾吉斯文 ky-kg、ky-cyrl
寮文 lo、lo-la
拉脫維亞文 lv、lv-lv
立陶宛文 lt、lt-lt
盧森堡文 lb、lb-lu
馬其頓文 mk、mk-mk
馬來文 ms、ms-bn、ms-my
馬來亞拉姆文 ml、ml-in
馬爾他文 mt、mt-mt
毛利文 mi、mi-latn、mi-nz
馬拉地文 mr、mr-in
蒙古文 (斯拉夫) mn-cyrl、mn-mong、mn-mn、mn-phag
尼泊爾文 ne、ne-np
挪威文 nb、nb-no、nn、nn-no、no、no-no、
歐迪亞文 or、or-in
波斯文 fa、fa-ir
波蘭文 pl、pl-pl
葡萄牙文 (巴西) pt-br
葡萄牙文 (葡萄牙) pt、pt-pt
旁遮普文 pa、pa-arab、pa-arab-pk、pa-deva、pa-in
蓋楚瓦文 quz、quz-bo、quz-ec、quz-pe
羅馬尼亞文 ro、ro-ro
俄文 ru 、ru-ru
蘇格蘭蓋爾文 gd-gb、gd-latn
塞爾維亞文 (拉丁) sr-Latn、sr-latn-cs、sr、sr-latn-ba、sr-latn-me、sr-latn-rs
塞爾維亞文 (斯拉夫) sr-cyrl、sr-cyrl-ba、sr-cyrl-cs、sr-cyrl-me、sr-cyrl-rs
北索托文 nso、nso-za
塞茲瓦納文 tn、tn-bw、tn-za
信德文 sd-arab、sd-arab-pk、sd-deva
僧伽羅文 si、si-lk
斯洛伐克文 sk、sk-sk
斯洛維尼亞文 sl、sl-si
西班牙文 es、es-cl、es-co、es-es、es-mx、es-ar、es-bo、es-cr、es-do、es-ec、es-gt、es-hn、es-ni、es-pa、es-pe、es-pr、es-py、es-sv、es-us、es-uy、es-ve、es-019、es-419
瑞典文 sv、sv-se、sv-fi
塔吉克文 (斯拉夫) tg-arab、tg-cyrl、tg-cyrl-tj、tg-latn
坦米爾文 ta、ta-in
韃靼文 tt-arab、tt-cyrl、tt-latn、tt-ru
泰盧固文 te、te-in
泰文 th、th-th
提格利尼亞文 ti、ti-et
土耳其文 tr、tr-tr
土庫曼文 tk-cyrl、tk-latn、tk-tm、tk-latn-tr、tk-cyrl-tr
烏克蘭文 uk、uk-ua
烏都文 ur、ur-pk
維吾爾文 ug-arab、ug-cn、ug-cyrl、ug-latn
烏茲別克文 (拉丁) uz、uz-cyrl、uz-latn、uz-latn-uz
越南文 vi、vi-vn
威爾斯文 cy、cy-gb
沃洛夫文 wo、wo-sn
約魯巴文 yo-latn、yo-ng