如何自动启动使用 Msix 打包的应用程序?
Posted
技术标签:
【中文标题】如何自动启动使用 Msix 打包的应用程序?【英文标题】:How to Auto Start An Application which is packaged using Msix? 【发布时间】:2020-10-28 00:59:59 【问题描述】:我有一个应用程序,目前正在使用 .msi(wix 项目)安装在客户端计算机上。 现在我想自动更新超出 wix 范围的应用程序。我正在考虑将 MSIX 用于此任务。我现在可以自动更新我的应用程序了。
但我无法找到如何自动启动我的应用程序的方法。
在以前安装在 C 上的 .msi 应用程序中:
程序文件\ 。但现在在 C:\Program Files\WindowsApps
【问题讨论】:
您使用的是 FG-WiX 还是 WiX 扩展包? 【参考方案1】:MSIX 打包应用带有新的部署和配置范例。要记住的最重要的部分是操作系统保证了 MSIX 包安装的应用程序的完整性,这间接意味着禁止任何第三方访问应用程序的安装文件夹。这意味着执行 EXE 的旧方法不适用。
在启动时从 MSIX 包启动 EXE 的正确方法是在包 AppXManifest 中使用 define a StartupTask.。链接的文章显示了执行此操作的多种方法,不幸的是,对 MSIX 的 WiX 支持位于私有分支中,因此我们没有关于此的任何详细信息,但您应该能够使用该信息作为起点。
另外,这里有一篇来自 MSFT 的类似文章,关于如何start your MSIX-packaged application in different ways.
【讨论】:
对 MSIX 的支持作为 FireGiant WiX 商业扩展的一部分提供。我用它为客户创建 MSI 和 MSIX 包。我已经通过电子邮件向 FireGriant 支持部门发送电子邮件,看看这里的答案是什么,稍后我会亲自试一试。 @ChristopherPainter,你从 FireGiant 那里得到答案了吗?【参考方案2】:我询问了 FireGiant 的支持电子邮件地址如何添加 StartupTask。他们的回应如下:
FireGiant Msix 扩展明确支持启动任务。作为您希望在启动时启动的 File 元素的子元素,添加一个 StartupTask 元素。 TaskId 属性是必需的,并且根据 Msix SDK:
您的任务的唯一标识符。使用此标识符,您的应用程序可以调用 Windows.ApplicationModel.StartupTask 类中的 API 以编程方式启用或禁用启动任务。
请注意,在注册启动任务之前,用户必须正常启动您的应用程序。
【讨论】:
以上是关于如何自动启动使用 Msix 打包的应用程序?的主要内容,如果未能解决你的问题,请参考以下文章