0

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

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

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

我上周才发现这个 ForceUpdateFromAnyVersion 标志,我们每周创建一个版本,所以设置了这个标志的版本就是当前版本。这就是降级不起作用的原因吗?

4

2 回答 2

1

从我读到的(我没有测试它)看来,确实需要在检查更新的版本的 appinstaller 中出现该标志(不仅仅是在新版本中)。因此,随着下一次更新,您应该能够推动降级。

这是 Microsoft 提供的有关MSIX 降级的更多详细信息。

于 2020-11-24T10:14:49.130 回答
1

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

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

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

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

于 2020-11-25T22:43:31.353 回答