包版本编号

你提供的每个软件包都必须有一个版本号(作为应用清单中包/标识元素的版本属性中的值提供)。 Microsoft Store 会强制执行与版本号相关的某些规则,这些规则在不同 OS 版本中的工作方式略有不同。

注意

除非另有说明,否则本主题将引用“程序包”,并对 .msix/.appx 和 .msixbundle/.appxbundle 文件的版本号应用相同的规则。

Windows 10 和 11 软件包的版本号

重要

对于 Windows 10 或 Windows 11 (UWP) 软件包,版本号的最后一个(第四)部分保留给应用商店使用,在在构建软件包时必须保留为 0(尽管应用商店可能会更改该部分的值)。 其他部分必须设置为 0到 65535 之间的整数(除了第一部分,不能是 0)。

从已发布的提交中选择 UWP 软件包时,Microsoft Store 将始终使用适用于客户 Windows 10 或 Windows 11 设备的最高版本软件包。 这带来了更大的灵活性,让你能够控制在特定设备类型上向用户提供哪些软件包。 重要的是,你可以按照任何顺序提交这些软件包;并不局限于在每次提交时都提供版本更高的软件包。

你甚至可以提供多个具有相同版本号的 UWP 程序包。 但是,共享版本号的软件包不能具有相同的架构,因为应用商店为每个软件包使用的完整标识必须是唯一的。 有关详细信息,请参阅标识

当你提供多个使用相同版本号的 UWP 软件包时,体系结构(按 x64、x86、Arm、中性的顺序)将被用来决定哪个软件包的等级更高(当应用商店决定向客户的设备提供哪个软件包时)。 在对使用相同版本号的应用程序捆绑包进行排名时,会考虑捆绑包中最高的体系结构等级:包含 x64 软件包的应用捆绑包的排名会高于只包含 x86 软件包的应用捆绑包。

这样,你便可以灵活地随着时间推移不断开发应用。 你可以上传和提交使用较低版本号的新软件包,以添加对以前不支持的 Windows 10 或 Windows 11 设备的支持;你可以添加具有更严格依赖性的高版本软件包,以利用硬件或操作系统功能;你也可以添加高版本软件包,作为对部分或全部现有客户群的更新。

以下示例演示了如何管理版本号,以便通过多次提交向客户交付预定的软件包。

示例:通过多次提交转为使用单一软件包

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.5.0 和 1.0.0.0 的最佳可用版本 1.1.10.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 是可用的最高版本号,因此他们将获得的软件包就是 1.1.10.0。

使用版本号回滚到以前提供的新购买软件包

如果你保留了程序包文件的副本,在你发现版本问题时,你可以选择将应用商店中你的应用包回滚到早期 Windows 10 程序包。 这是一种临时性的方法,可在你解决此问题时限制对你的客户的中断。

为此,创建新的提交。 删除有问题的软件包,并上传要在应用商店中提供的旧软件包。 已经收到要回滚的软件包的客户仍然会收到有问题的软件包(因为你的旧软件包有一个较早的版本号)。 但这将阻止其他人获取有问题的软件包,同时让应用在应用商店中仍然可用。

若要为已收到有问题程序包的客户解决此问题,你应尽快提交一个版本号高于有问题程序包的新 Windows 10 程序包。 在提交通过认证程序后,所有客户都将更新到新软件包,因为新软件包的版本号更高。

你可以通过安装程序来管理软件包的版本号。 应用商店不支持 Win32 软件包版本号。

重要

应用加载项不支持软件包版本号。