若要在用户迁移到新设备时最大程度地保留用户,你的应用(与 Windows 应用还原结合使用)应提供最佳的还原体验。 本主题定义了 Windows 应用还原的一个原则,使你的应用能够提供该体验,并使尽可能多的客户参与其中。
应用还原为何至关重要
当你的应用的用户移动到他们的下一个 Windows 电脑时,他们需要放心,他们的应用将转移到他们的新设备。
Windows 会将用户的应用列表备份到云;还原期间,它将在新 Windows 电脑上创建固定的应用占位符,以便用户找到他们期望应用的位置。 这使得应用的安装非常简单。 但是,除了应用程序安装之外,用户还希望其应用配置和设置的其余部分转移到其新设备。
如果你确保你的应用遵循最佳做法,以最大限度地提高 Windows 应用还原功能的有效性,那么你的用户将能够尽快回到他们的新电脑上的工作效率。 这反过来又允许你的应用在其新电脑上保留你的用户。 本主题的其余部分讨论这些最佳做法。
应用还原原则
这些原则是为应用用户启用最佳备份和还原体验的准则和最佳做法。 这些是我们收集的现有最佳做法的集合。
- 将应用发布到 Microsoft 应用商店。 你的应用应通过 Microsoft 应用商店启用受信任的分发(请参阅 发布 Windows 应用和游戏)。 这是为用户提供受信任且无缝(减少点击次数)体验的最简单方法。
- 打包应用。 应用应 打包 (有关定义,请参阅 部署概述)。 打包的应用使系统能够更好地了解对应用很重要的文件、数据和设置;使系统能够更轻松地按需还原应用。
- 将关键应用状态存储在云中。 你的应用应将其关键应用状态存储在云中。 在新设备上安装应用只是第一步。 让用户无缝回到他们以前的应用状态(他们的最近使用、收藏夹、首选项)是目标;执行此作的最佳方式是将关键用户状态信息存储在云中。 本地状态应仅被视为临时优化。
- 将用户生成的内容写入已知文件夹。 你的应用应将用户生成的内容写入 Windows 已知文件夹(请参阅 KnownFolders 类)。 将其与应用状态保持隔离 —如果你的应用生成用户生成的内容(文件、声音剪辑、视频等),则应将该内容写入 Windows 已知文件夹(文档、图片、音乐、视频等)。 这样,Windows 就可以通过 OneDrive 将这些文件备份到云,并使用其按需文件技术在设备之间流畅地保持同步。
将应用发布到 Microsoft 应用商店
Microsoft应用商店是 Windows 应用最可靠的分发云(请参阅 发布 Windows 应用和游戏)。 用户可以轻松搜索和查找要安装的应用。
当用户安装新的操作系统 (OS) 并选择从以前的电脑还原时,那些位于 Microsoft Store 中的应用将自动列在 “所有应用” 列表中,并在 “开始” 菜单和任务栏上的同一位置提供固定选项。 这些快捷方式允许用户立即访问应用并安装它。
打包应用
为用户创建出色体验的另一个关键是确保应用已安装并正常运行。 执行此作的最佳方法是使用 打包 的应用(请参阅 部署概述)。
打包的应用(打包的桌面应用或 WinUI 应用)是使用 MSIX 打包的,并且它在轻型应用容器中运行。 打包的应用进程及其子进程在容器内运行;它们使用文件系统和注册表虚拟化进行隔离。 打包的这些方面使安装极其可靠,并确保应用在用户卸载时不会错误或离开电脑上的注册表配置或应用文件。
有关使用 MSIX 打包的好处的详细信息,请参阅 什么是 MSIX?。
MSIX 格式和打包应用的优点不会以应用可靠性结尾。 打包应用还意味着当用户迁移到新电脑时,它将能够快速安装。 安装后,Windows 将开始复原恢复的打包应用程序。 由于解除冻结需要时间,如果用户在解除冻结应用之前单击链接,则 Windows 将立即下载并安装该应用,使用户能够尽早运行它。
在云中存储关键应用状态
正如你所看到的,Windows 在帮助客户在其新电脑上找到和安装你的应用方面做得非常出色。 但是,应用数据(如应用设置)呢? 为了提供最佳用户体验,建议使用云来存储应用的状态。 通过将应用数据存储在云中,用户可以跨设备获得一致的体验。 当用户不需要重新配置其应用设置时,用户满意度会显著增加。
将应用设置存储到云需要服务。 为了尽可能提供丰富的体验,微软提供了各种服务,无需启动或配置服务器,或选取数据库,也不用担心扩展性或安全性。 这些服务提供了出色的开发人员体验,使你能够使用 SQL 或 NoSQL API 将应用程序数据存储在云中。 为了帮助构建可缩放且可靠的应用程序,还可以同步所有设备上的数据,并使应用程序能够使用或不使用网络连接。 有关Microsoft服务的详细信息,请参阅 云中的应用商店、同步和查询移动应用程序数据。
有关存储应用数据的最佳做法的详细信息,请参阅 “存储和检索设置”和其他应用数据。
将用户生成的内容写入已知文件夹
Windows 引入了 Windows Vista 的已知文件夹 。 自那时以来,用户一直期望他们可以在这些位置找到使用应用创建的内容。 将用户生成的内容写入这些位置具有附加的好处,即 OneDrive 将备份这些文件夹(如果已启用),以确保这些文件夹可供新电脑上的用户使用(请参阅 使用 OneDrive 备份文件夹)。 通过使用标准 Windows API 将用户生成的内容写入已知文件夹,可以改进用户体验,并减少采用应用的摩擦。
用户可见文件
应存储希望用户查看的文件,并在用户配置文件中的相应文件夹中与之交互。 应将常规文件存储在 FOLDERID_Documents 位置,通常是在子文件夹中。 你应该将图片、音乐和视频存储在它们各自相应的 FOLDERID_Pictures、FOLDERID_Music 和 FOLDERID_Videos 位置。
计算机特定的应用数据
应存储特定于应用当前在 FOLDERID_LocalAppData 文件夹中运行的计算机的数据;通常存储在子文件夹中。 这包括以下数据:
- 系统性能指标。 收集和存储有关当前计算机的信息,并用于优化该特定计算机上应用程序的运行表现。 例如,如果已收集有关计算机图形功能和性能的信息(为了确定最佳呈现质量),则不应漫游该数据。
- 与机器特定能力相关联的用户自定义设置。 为了优化其呈现性能,一个基于计算机图形功能和性能的应用程序,还应将用户对这些首选项所做的任何更改存储为特定于计算机的数据。 这可以确保用户在他们运行应用的计算机上获得最佳体验。
小窍门
我们建议不要将计算机特定的数据存储在已知文件夹中的原因是,这些特定于用户的文件夹在计算机之间(它们 漫游)与用户一起旅行。 因此,存储计算机特定的数据可能会导致用户在多台计算机上或在升级后使用应用时发生冲突和问题。
非计算机特定的应用数据
应在 FOLDERID_Documents 位置中存储与计算机无关的数据,通常存储在子文件夹中。 这些文件通常包含用户提供的应用自定义,例如:在启动时执行的默认作;自定义背景;或其他不应从一台计算机更改为另一台计算机的数据。
未打包应用的最佳做法
如果无法打包应用,请确保安装程序实现以下建议。 这将确保可以备份和还原“开始”菜单快捷方式,使其能够安装在从备份恢复的新计算机上。
- 请确保安装程序在其卸载注册表项中指定一个
InstallLocation值。 使用 Windows Installer 时,请使用 ARPINSTALLLOCATION 指定此项。 若要启用“ 开始” 菜单快捷方式到产品的映射,需要用到它。 - 确保该位置特定于产品;通常为下面的
C:\Program Files\<Publisher>\<Application>子目录。 - 确保 “开始” 菜单快捷方式具有与计算机无关
System.AppUserModel.ID的 (AMUID) 值。 最好是在快捷键元数据中显式指定它们。 有关详细信息,请参阅 “分配 AppUserModelID 的位置”。