设置 ForceUpdateFromAnyVersion 后降级 MSIX 安装程序应用程序

Downgrading an MSIX-installer application after setting ForceUpdateFromAnyVersion

我们有一个应用程序,我们使用 MSIX 包在网络共享上进行内部分发。我们在 Visual Studio 中使用 MSIX 项目类型制作 MSIX 包。用户使用创建的 index.html 页面安装它。

我们希望在更新出现严重错误时回滚更改,因此我创建了一个 .appinstaller 模板并使用它来设置 ForceUpdateFromAnyVersion 标志。

我的问题是用户实际上是如何执行降级的?我尝试在 Windows Explorer 中浏览到早期版本并执行 .msixbundle 文件,但它告诉我已经安装了更新版本的应用程序,我唯一的选择是启动当前安装的版本。

我上周才发现这个 ForceUpdateFromAnyVersion 标志,我们每周发布一次,因此设置该标志的版本是当前版本。这就是降级不起作用的原因吗?

从我读到的内容(我没有测试过)看来,该标志确实需要出现在正在检查更新的版本的应用程序安装程序中(而不仅仅是在新版本中)。因此,在下一次更新中,您应该可以进行降级。

这是 Microsoft 在 MSIX downgrades 上提供的更详细的教程。

要执行降级,请将 appinstaller 文件放在 MSIX/MSIXBUNDLE 附近的共享上,并指示用户通过 appinstaller 文件安装应用程序(双击 appinstaller)。

只有这样降级方案才会起作用。 msixbundle 不包含 ForceUpdateFromAnyVersion,除非您使用应用程序安装程序,否则它不会意识到这一点,这就是为什么当您尝试通过 msixbundle 降级时,您会收到机器上存在新版本的错误消息。

您必须考虑的是:如果用户先安装了 MSIX/MSIXBUNDLE,然后您将旧版本的 appinstaller 文件发布到您的共享上,则不会自动降级,因为 MSIX 在用户机器不知道他必须检查 updates/downgrades 的任何共享。所有自动更新选项都在应用程序安装程序中定义。

但是如果您的用户首先通过 appinstaller 安装应用程序,您可以将一个新的 appinstaller 文件放在您的共享上(当然 MSIX/MSIXBUNDLE),它指向较低的版本,这取决于您如何在appinstaller文件中定义检查间隔,降级将自动执行..