无法在UWP Windows应用程序打包解决方案中打开AppServiceConnection

无法在UWP Windows应用程序打包解决方案中打开AppServiceConnection,uwp,Uwp,我有一个UWP应用程序,它有两个主要部分,一个UWP项目有UI,一个WinForms项目用于提供系统托盘功能。我正在使用Windows应用程序打包项目将它们连接在一起,如本例所示: 当应用程序启动时,WinForm应用程序首先启动并驻留在系统托盘中。选择其中一个菜单选项后,将启动UWP应用程序,并使用示例中的协议方法(即Windows.System.Launcher.LaunchUriAsync(“myapp://action?key=value”;)。这很好用 我的问题是,我希望能够从UWP应

我有一个UWP应用程序,它有两个主要部分,一个UWP项目有UI,一个WinForms项目用于提供系统托盘功能。我正在使用Windows应用程序打包项目将它们连接在一起,如本例所示:

当应用程序启动时,WinForm应用程序首先启动并驻留在系统托盘中。选择其中一个菜单选项后,将启动UWP应用程序,并使用示例中的协议方法(即
Windows.System.Launcher.LaunchUriAsync(“myapp://action?key=value”;
)。这很好用

我的问题是,我希望能够从UWP应用程序与WinForms应用程序进行通信(在某些情况下,也可能是另一种方式)。我正试图通过应用服务扩展来实现这一点。我一直在遵循以下示例:。然而,我不能让它工作。我不太确定fulltrust和应用程序服务声明应该在哪个项目中

如果我像示例中那样将它们放在我的UWP项目中,我总是会得到一个AppServiceUnavailable错误(名称绝对正确-我不知道此状态的文档所指的版本是什么,但我看不出它怎么会不正确)。无论UWP应用程序当时是否打开,都会发生这种情况。以前,我已经让这种方法工作,但只有当没有Windows应用程序打包项目涉及和UWP应用程序首先启动,我不希望

如果我将声明放在Windows应用程序打包项目中(将应用程序服务可执行文件和入口点设置为UWP项目应用程序类),我会得到一个AppUnavailable错误,我猜这意味着它在较早的时候失败了

有人知道我怎样才能让它工作吗?如果由于某种原因无法实现,有人能为我指出实现这一想法的正确方向吗(UWP应用程序在启动时不启动任何窗口,并且驻留在系统托盘中,需要在任何组件之间发送双向消息)

编辑:目标版本:17763,最小版本:16299,Windows版本:17763


EDIT2:我创建了一个小测试解决方案,希望能显示出我正在努力做得更好:。

好的。我已经看过你的演示了。在与Stefan Wick协商后,该问题可以重新讨论

您需要对WAP项目的Package.appxmanifest文件进行以下更改。否则,VS将在Winforms应用程序上声明AppService,这将不起作用



您的项目目标和最低版本是什么?您的操作系统构建版本是什么?@XavierXie MSFT在问题中添加了版本信息。请检查您是否正确创建了AppService,如所示。@XavierXie MSFT是的,我遵循了该示例(通过Stefan Wick的博客文章)。不过,我的示例中有一个不同之处,那就是我使用的是一个Windows应用程序打包项目。这允许我先启动WinForms应用程序,然后在需要时才启动UWP应用程序。但是,除了我在问题中发布的第一个演示外,没有其他演示使用此功能。@XavierXie MSFT我创建了一个小测试应用程序,希望它能显示我正在努力做得更好。我现在几乎不知所措,没有一个示例显示这种情况(据我所知)。在我看来,现有的systray样本确实没有很好的表现。我甚至尝试使用命名管道在应用程序之间进行通信,但我也无法实现这一点,尽管有文档表明,如果名称为前缀LOCAL \则应在同一应用程序包中的应用程序之间进行通信。我想我需要我的AppService处于进程中,因为我需要我的UWP应用程序能够对消息做出反应收到-除非我误解了进程内和进程外的含义?关于UWP应用程序需要运行一次:如果我不希望UWP应用程序在启动时显示任何内容,有没有办法实现这一点?据我所知,启动UWP应用程序总是显示窗口。同样,正如我在问题中所说的,即使在我启动了这个窗口之后,我也没有建立连接(OnBackgroundActivated似乎从来没有被呼叫过)。@rcarrington我已经更新了我的回复。请检查一下。