如何自动启动使用 Msix 打包的应用程序?

How to Auto Start An Application which is packaged using Msix?

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

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

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

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

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

此外,这里有一篇来自 MSFT 的类似文章,介绍了如何 start your MSIX-packaged application in different ways.

我问FireGiant的支持邮箱地址如何添加StartupTask。他们的回复如下:

The FireGiant Msix extension has explicit support for startup tasks. As a child of the File element you want started at boot, add a StartupTask element. The TaskId attribute is required and according to the Msix SDK:

A unique identifier for your task. Using this identifier, your application can call the APIs in the Windows.ApplicationModel.StartupTask class to programmatically enable or disable a startup task.

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