如何使用 Desktop App Converter 打包具有 Win32 后台进程的 UWP 应用程序

How to package a UWP app with a Win32 background process using Desktop App Converter

按照 this video and this tutorial 中提供的指导,我已经成功创建了一个 UWP 应用程序,它能够使用 Desktop Bridge 通过 Win32 后台进程连接到 USB 连接的 POS 打印机。

我的应用程序 运行 在 Visual Studio 中调试时运行良好并正确打印,但我无法创建包来部署它。我的最终目标是 Windows 商店包,但我最初对可以旁加载到另一台本地计算机上的包感到满意。

这是我尝试过的:

  1. 我使用 Visual Studio 中的 Store > Create App Packages 选项以通常的方式创建应用程序包。此软件包安装正确,但未 运行,报告不包含后台进程可执行文件。我的主要 UWP 应用程序的构建过程包括一个构建事件,该事件将 Win32 后台进程项目的可执行文件复制到 AppX 目录的子目录中,但它们在打包过程中似乎被忽略了。

  2. 我从this tutorial (specifically the author's reply to a reader's question) that this packaging process needs to be performed using Desktop App Converter, which I have installed and provisioned with a base image, as described here了解到。因此,我尝试从 AppX 目录中的 Visual Studio 输出创建一个包,直接引用 UWP 可执行文件作为打包应用程序的入口点。不幸的是,Desktop App Converter 拒绝此操作,并显示错误 E_APP_EXECUTABLE_NOT_FOUND。看来 UWP .EXE 文件并不是真正的可执行文件。

我从 this article 了解到,我要实现的目标需要在同一个 UWP 容器中 运行 处理两个进程。这似乎是我调试 UWP 应用程序时发生的情况,但不清楚如何打包该场景。

任何人都可以解释一下或向我指出解释如何执行此操作的资源吗?

非常感谢,提前。

Desktop App Converter 不是适合这种情况的工具。您需要更新 appxmanifest 和 VS 项目设置才能使其正常工作。

这里发布了几个示例,您可以按照以下示例操作: https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/UWP%20Systray

https://github.com/Microsoft/DesktopBridgeToUWP-Samples/tree/master/Samples/UWP%20Office%20Interop

如果您使用 .NET 构建您的应用程序,则需要注意一些额外的步骤,就创建用于商店提交的程序包而言: https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-packaging-dot-net

如果在此过程中出现更多问题,我们很乐意提供帮助。