上传应用包

你可以在应用提交进程的“程序包”页上传所要提交应用的所有程序包文件(.msix、.msixupload、.msixbundle、.appx、.appxupload 和/或 .appxbundle)。 你可以将同一应用的所有程序包上传到该页面,当客户下载应用时,Microsoft Store 将自动向每个客户提供最适用于其设备的程序包。 上传程序包后,将看到一个表格,指示将以排名顺序向特定 Windows 10 或 Windows 11 设备系列(如果适用,也包含早期 OS 版本)提供哪些程序包

A screenshot showing the overview of packages page for MSIX/PWA app.

重要

无法再上传使用 Windows Phone 8.x SDK 生成的新的 XAP 包。 Microsoft Store 中已经具有 XAP 程序包的应用将可以继续用于 Windows 10 移动设备。 有关详细信息,请参阅此博客文章

有关包包含的内容及其结构方式的详细信息,请参阅应用包要求。 你还需要了解版本号如何影响交付给特定客户的程序包以及如何在各种方案中管理程序包

将包上传到提交

若要上传包,请将它们拖到上传字段中,或单击以浏览文件。 通过“程序包”页,你可以上传 .msix、.msixupload、.msixbundle、.appx、.appxupload 和/或 .appxbundle 文件。

重要

对于 Windows 10,建议在此处上传 .msixupload 或 .appxupload 文件,而不是 .msix、.appx、.msixbundle 或 .appxbundle 文件。 有关打包应用商店 UWP 应用的详细信息,请参阅使用 Visual Studio 打包 UWP 应用

如果为应用创建了任何包外部测试版,你将看到一个下拉列表,其中包含从其中一个包外部测试版复制包的选项。 选择包含要拉取的包的包外部测试版。 然后,可以选择要包含在此提交中的任何包或所有包。

如果在验证程序包时检测到错误,我们将显示一条消息,告知你错误的原因。 你将需要删除程序包、修复问题,然后尝试再次上传程序包。 你可能还会看到警告,告知你有关可能导致问题的问题,但不会阻止你继续提交。

设备系列可用性

在已成功上传程序包后,“设备系列可用性”部分将显示一个表格,指示将以排名顺序向特定 Windows 10 或 Windows 11 设备系列(如果适用,也包含早期 OS 版本)提供哪些程序包。 通过本部分,还可以选择是否向特定 Windows 10 或 Windows 11 设备系列上的客户提供提交。

有关详细信息,请参阅设备系列可用性

包详细信息

此处列出了已上传的包,按目标操作系统分组。 将显示包的名称、版本和体系结构。 有关每个包支持的语言、应用功能和文件大小等详细信息,请单击“显示详细信息”。

如果需要从提交中删除包,请单击每个包的 详细信息 部分底部的“删除”链接。

移除冗余包

如果我们检测到一个或多个包是冗余的,我们将显示一条警告,建议你从此提交中移除冗余包。 当你之前上传过包,而现在提供支持同一组客户的更高版本的包时,通常会发生这种情况。 在这种情况下,任何客户都不会获得冗余包,因为你现在有更好的(更高版本的)包来支持这些客户。

当我们检测到你具有冗余包时,我们将提供一个选项来自动从此提交中移除所有冗余包。 如果愿意,还可以单独从提交中移除包。

逐步部署程序包

如果提交是以前发布的应用的更新,你将看到一个复选框,指示“在此提交发布后,逐渐(仅向 Windows 10 或 Windows 11 客户)推出更新”。 这样一来,你就可以选择将从提交获取程序包的客户比例,以便你可以监视反馈和分析数据,从而确保在更广泛地推出更新前对此更新无虑。 可以随时增加百分比(或停止更新),而无需创建新提交。

有关详细信息,请参阅逐步进行软件包推出

强制更新

如果你的提交是以前发布的应用的更新,你将看到一个复选框,指出使此更新强制。 这允许你设置强制更新的日期和时间,前提是你已使用 Windows.Services.Store API 允许应用以编程方式检查包更新并下载和安装更新的包。 你的应用必须面向 Windows 10 版本 1607 或更高版本才能使用此选项。

有关详细信息,请参阅下载和安装应用的包更新

可以在应用提交过程的“程序包”页中提供要提交的应用包 (MSI/EXE) 和关联的信息。 当客户下载应用时,Microsoft Store 将自动向每个客户提供最适用于其设备的程序包。

A screenshot of the overview of Packages section in Partner Center.

必须至少完成一个包的“包”页面。 若要添加包,请单击“包”页面的“添加包”。

A screenshot of the Packages section showing the overview of package details.

添加和编辑包信息

若要编辑包信息,请从“包”页面中选择“包”。 必须单独编辑每个包。

Package URL
必需

必须输入至少一个具有版本控制的安全 URL,该 URL 指向托管在 CDN 上的应用包 (MSI/EXE)。 https://www.contoso.com/downloads/1.1/setup.exe 是具有版本控制的安全 URL 的一个示例。 当客户从 Store 安装应用时,Store 会从此 URL 下载程序包。 你需要遵循良好的 CDN 做法,确保此 URL 性能良好、可靠且可用(具体取决于你的市场选择)。

A screenshot of the Packages section where you can provide your package URL details.

如果需要更新包 URL,必须使用合作伙伴中心的“更新提交”选项来指定新的包 URL。

包 URL 上的二进制文件在提交后不得更改,以确保用户仅安装经认证的二进制文件。 Store 将保留最新应用包的副本,以在单独的托管服务,如内容分发网络 (CDN) 上托管的应用安装程序通过合作伙伴中心或 API 进行交换,而无需通过合作伙伴中心或 API 提交。 Store 还将下载新的应用包并启动认证过程。 如果更新通过认证测试,应用商店会使它们可供最终用户使用。 如果更新未通过认证测试,应用商店会通知你通过合作伙伴中心或 API 提交更新。

必须提交独立/脱机安装程序,而不是在调用时下载二进制文件的下载程序。 这需要验证安装的二进制文件与通过认证过程的二进制文件是否相同。

体系结构
必需

必须从以下值之一中选择包中包含的代码的体系结构:

  • x86
  • x64
  • 中立
  • arm
  • arm64

A screenshot of the Packages section where you can provide your app architecture details.

如果在 1 个以上的体系结构中编译了包,则应将它们添加到提交。

语言
必需

A screenshot of the Packages section where you can provide the languages your app supports.

你可以用 100 多种语言向 Windows Store 提交应用。 应用必须至少支持下述语言之一。

注意

Microsoft Store 不支持此处未列出的语言代码。

语言名称 支持的语言代码
南非荷兰语 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
Bangla 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、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
爱沙尼亚语 et, et-ee
菲律宾语 fil, fil-latn, fil-ph
芬兰语 fi, fi-fi
法语 fr、fr-be、fr-ca、fr-ch、fr-fr、fr-lu、fr-cd、fr-ci、fr-cm、fr-ht、fr-ma、fr-mc、fr-ml、fr-re、frc-latn、frp-latn
加利西亚语 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
Hindi hi, hi-in
匈牙利语 hu, hu-hu
冰岛语 is, is-is
伊博语 ig-latn, ig-ng
印度尼西亚语 id, id-id
因纽特语(拉丁语) 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
基切语 quc-latn, qut-gt, qut-latn
卢旺达语 rw, rw-rw
斯瓦希里语 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
瑞典语 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

应用类型
必需

选择应用类型 – (EXE/MSI)。 如果选择 EXE,则需要提供安装程序参数和安装程序处理的详细信息。

A screenshot of the Packages section where you can provide the type (msi/exe) of your app.

A screenshot of the Packages section showing the additional fields required for exe type of apps.

安装程序参数
必需

Microsoft Store 需要在静默模式下运行安装程序。 若要支持它,需要提供特定于 EXE 应用的安装程序的必需开关,例如 /s。 如果安装程序默认以无提示模式运行,不用任何开关,则不需要这样做。

A screenshot of the Packages section where you can provide the installer parameters for your app.

对于 MSI 应用,应用商店使用默认的静音开关“/qn”以静音模式运行安装程序。

EXE 应用的安装程序处理
必需

A screenshot of the section of the Partner Center package details page where you can specify which return codes correspond to which installer outcomes.

EXE 应用通常具有在安装过程中返回自定义代码的安装程序。 Store 支持适合面向客户的消息和操作,这些消息和操作适用于你提供的自定义返回代码。

以下是 Store 支持的标准安装场景:

方案 说明
用户取消安装 用户取消了安装操作。
应用程序已存在 设备上已存在该应用程序。
安装已在进行中 另一安装已在进行中。 在继续安装之前,用户需要完成安装。
磁盘空间已满 磁盘空间已满。
需要重新启动 需要重启才能完成安装。
网络故障 为各种与网络相关的故障提供自定义返回代码值。
安装期间拒绝的包 由于设备上启用了安全策略,包在安装过程中被拒绝。
安装成功 安装已成功。

可以根据安装程序的行为,为每个上述场景添加 1 个以上的返回代码。

对于超出上述标准场景列表的场景,客户将定向到安装程序返回代码文档。 对于其他安装失败场景,可以添加自定义返回代码,以及与返回代码相关的特定文档 URL,以便 Store 能够指引客户。

强烈建议为 EXE 应用提供此信息,以便 Store 为客户提供定制体验。 这也有助于 Store 处理和报告 EXE 应用的应用安装。

添加包后,单击“保存草稿”。 你将回到“管理包”页面。 在包列表中,将看到已添加包。 验证包已添加到包列表中后,单击“全部保存”。 你将看到一条消息,指出包正在上传,成功上传后,将收到一条消息,显示为“已成功保存”。

重要

加载项当前不支持应用包。