【问题标题】:How to Auto Start An Application which is packaged using Msix?如何自动启动使用 Msix 打包的应用程序?
【发布时间】:2020-10-28 00:59:59
【问题描述】:

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

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

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

【问题讨论】:

  • 您使用的是 FG-WiX 还是 WiX 扩展包?

标签: .net windows windows-installer msix


【解决方案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 以编程方式启用或禁用启动任务。

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

【讨论】:

    猜你喜欢
    • 2020-09-05
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    相关资源
    最近更新 更多