0

我目前正在开发一个 UWP 应用程序,该应用程序现在需要访问 AppContainer 中的应用程序通常无法访问的 API。
由于我(还)不能迁移到 WinUI3,我想尝试使用 DesktopBridge 来完成其他受限的工作。

由于两个进程都必须相互通信,我想到了 COM,因为一旦一切都设置好了,它应该使事情变得相对无缝。
根据此页面,这应该可以使用“Packaged Com”。
我现在有...

  • 一个进程外 Com 服务器 (c# net5.0) 可由非打包的 win32 应用程序(例如,PowerShell)访问,但不是我自己的 UWP 应用程序。
  • 具有主要逻辑和 UI 的 UWP 应用程序。
  • 一个打包项目,它从两个项目中创建一个包。(清单

代码在 GitHub 上:Repo

有人知道如何解决这个问题或获得 IPC 的替代方案吗?

PS:教程我在 c# Packaging / DesktopBridge中使用
Packaged Com Out-Of-Proc COM

4

1 回答 1

0

因此,如果我对您的理解正确,您希望在 UWP 应用和 Win32 应用之间进行通信,并且这两个应用被打包在一个 Windows 应用程序包项目中。如果不正确,请告诉我。

对于您的场景,由于这两个应用程序与桌面桥一起打包,我建议您使用应用程序服务。应用服务不仅可以在 UWP 应用之间使用,还可以在 UWP 应用和桌面应用之间使用。

这些是详细的步骤:

  1. 需要在打包项目的Manifest文件中声明AppService连接。
  2. 您需要在 win32 应用程序中调用 App 服务 API。
  3. 您需要在 UWP 应用中处理 App.xaml.cs 中的连接

您可以查看Stefan Wick 的博客 - UWP with Desktop Extension - Part 3中的详细代码和示例。

于 2022-01-10T03:20:47.027 回答