0

我有一个应用程序,目前正在使用 .msi(wix 项目)安装在客户端计算机上。现在我想自动更新超出 wix 范围的应用程序。我正在考虑将 MSIX 用于此任务。我现在可以自动更新我的应用程序。

但我无法找到如何自动启动我的应用程序的方法。

在 .msi 应用程序中曾经安装在 C: Program Files\ 上。但现在在 C:\Program Files\WindowsApps<Some Random ID generated by MSIX> 中使用 MSIX。在 .msi 中,它只是一个注册表项,使应用程序像 (Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run) 一样自动启动,但现在由于这个随机 ID,我无法做到这一点。任何想法如何使应用程序自动启动?蒂亚:)

4

2 回答 2

2

MSIX 打包应用附带新的部署和配置范例。要记住的最重要的部分是操作系统保证了 MSIX 包安装的应用程序的完整性,这间接意味着禁止任何第三方访问应用程序的安装文件夹。这意味着执行 EXE 的旧方法不适用。

在启动时从 MSIX 包启动 EXE 的正确方法是定义StartupTask在你的包 AppXManifest 中。链接的文章显示了执行此操作的多种方法,不幸的是,对 MSIX 的 WiX 支持位于私有分支中,因此我们没有关于此的任何详细信息,但您应该能够使用该信息作为起点。

此外,还有一篇来自 MSFT 的类似文章,介绍了如何以不同的方式启动 MSIX 打包的应用程序。

于 2020-07-08T11:45:39.377 回答
0

我询问了 FireGiant 的支持电子邮件地址如何添加 StartupTask。他们的回应如下:

FireGiant Msix 扩展明确支持启动任务。作为您希望在启动时启动的 File 元素的子元素,添加一个 StartupTask 元素。TaskId 属性是必需的,并且根据 Msix SDK:

任务的唯一标识符。使用此标识符,您的应用程序可以调用 Windows.ApplicationModel.StartupTask 类中的 API 以编程方式启用或禁用启动任务。

请注意,用户必须在注册启动任务之前正常启动您的应用程序。

于 2021-10-02T12:07:27.360 回答