【问题标题】:Can a (Delphi) desktop-bridge app be restarted via the windows.updateTasks Extension?可以通过 windows.updateTasks 扩展重新启动(Delphi)桌面桥应用程序吗?
【发布时间】:2021-01-26 01:33:27
【问题描述】:

我已成功将 Delphi 应用程序打包到 MSIX 容器中,但我的应用程序要求之一遇到问题:从应用商店更新应用程序后,其后台进程(控制台 exe)已关闭向下(当然)并替换为在AppxManifest.xml 中指定的新副本,以便在第一次打开主应用程序时运行:

<Extensions>
   <desktop:Extension Category="windows.startupTask" Executable="CwHelper.exe" EntryPoint="Windows.FullTrustApplication">
      <desktop:StartupTask TaskId="CwHelper" Enabled="true" DisplayName="Capture Manager" />
   </desktop:Extension>
</Extensions>

这一切正常,但这意味着后台exe 在更新后打开主应用程序之前不会运行。这是非常不可取的。

我对 MSFT 文档的互联网探索让我认为我应该能够通过在上面的 &lt;Extensions&gt;...&lt;/Extensions&gt; 块中插入第二个 Extension 来自动重启后台应用程序,如下所示:

<Extension Category="windows.updateTask" Executable="<some>.exe" EntryPoint="<some entrypoint>" >
</Extension>

到目前为止,我还没有发现应该是我的(Delphi 创建的)&lt;some&gt;.exe 及其EntryPoint。事实上,我还没有找到任何使用 Extension Category 的例子。桌面桥应用程序实际上可以以这种方式使用它吗?如果是这样,谁能给我指点我应该在这些空白处填什么?

补充说明:我尝试在updateTask 定义字段中重复exe 的名称和Windows.FullTrustApplication,并且实际上通过了认证,但是当商店尝试安装它时会产生致命的下载错误。

添加了另一条注释:@StefanWick 好心地指出,他使用 MSFT 的工具集发布了我需要的东西 here 的示例。不幸的是,我不清楚如何将他的 C# 和 Visual Studio 标签转换为 Delphi 应用程序。对此的任何建议将不胜感激。

【问题讨论】:

    标签: delphi background-process desktop-bridge


    【解决方案1】:

    经过大约一个月的研究,我回答了我自己的问题,我发现目前的答案是“否”,因为根据 Embarcadero 客户支持,必要的 IBackgroundTasks 接口(还没有?)可供 Delphi 使用。

    但好消息是,这可能不是必需的,因为在 Microsoft 文档 here 中描述了在商店更新后重新启动应用的“正确”方法。

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 2019-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多