【发布时间】: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 文档的互联网探索让我认为我应该能够通过在上面的 <Extensions>...</Extensions> 块中插入第二个 Extension 来自动重启后台应用程序,如下所示:
<Extension Category="windows.updateTask" Executable="<some>.exe" EntryPoint="<some entrypoint>" >
</Extension>
到目前为止,我还没有发现应该是我的(Delphi 创建的)<some>.exe 及其EntryPoint。事实上,我还没有找到任何使用 Extension Category 的例子。桌面桥应用程序实际上可以以这种方式使用它吗?如果是这样,谁能给我指点我应该在这些空白处填什么?
补充说明:我尝试在updateTask 定义字段中重复exe 的名称和Windows.FullTrustApplication,并且实际上通过了认证,但是当商店尝试安装它时会产生致命的下载错误。
添加了另一条注释:@StefanWick 好心地指出,他使用 MSFT 的工具集发布了我需要的东西 here 的示例。不幸的是,我不清楚如何将他的 C# 和 Visual Studio 标签转换为 Delphi 应用程序。对此的任何建议将不胜感激。
【问题讨论】:
标签: delphi background-process desktop-bridge