我的一位客户与 OEM 达成了交易。他们的应用 X 将预装在许多笔记本电脑上。此应用将接收来自 Windows 10 商店的更新。此应用 X 也可以在 Windows 10 商店中下载给其他用户。只有使用预装版本的用户才能获得 3 个月的免费试用。
不幸的是,OEM 没有提供任何设备 ID,用户也没有获得任何用于试用的解锁代码。我想出了以下最初的“解决方案”:
- 为预安装的应用程序使用版本 1.0.1.0。
- 将 1.0.0.0 上传到商店。
当应用程序启动并且版本为 1.0.1.0 时,它被识别为预装版本,此时我可以进行服务器调用以将设备 ID 发送到客户端的服务器以识别此设备,即使在应用程序删除后也是如此。
我可以更新商店应用程序而不会丢失任何预装应用程序的知识,因为我可以更新到 1.0.1.0 以下的任何版本。这意味着预安装的版本不会被商店版本的自动更新覆盖(因为安装的版本号大于商店版本)。但是,如果在预装版本中检测到严重错误,我将无法更新该应用程序,否则某些类别的用户将无法获得免费试用。即在 Windows 10 之前尚未在设备上启动应用程序的用户将应用程序更新为新版本(例如 1.0.1.1)。
这一切听起来都不必要地复杂,我希望是这样。谁能想到一种更简单的方法来区分万无一失的预装版本和下载版本?
谢谢!