3

我在同一个解决方案中构建了一个 UWP 应用和一个 WPF 应用。我正在使用 Full​Trust​Process​Launcher 类从 UWP 应用程序启动 WPF 应用程序。我还使用 App​Service​Connection 类来允许两个应用程序相互通信。这一切在基本场景中都可以正常工作。但是,一旦我开始真正开发超出示例的 WPF 应用程序,我将需要在 Visual Studio 中开始调试。

我尝试了以下方法:

  1. 在 WPF 代码中设置断点。

结果:我没想到这会起作用,但事实并非如此。

  1. 一旦 UWP 启动它,就附加到正在运行的 WPF 进程。

结果:选择正在运行的 WPF 进程时的“附加”按钮显示为灰色。

  1. 我开始研究新的 VS 扩展“桌面桥调试项目”,并跟随示例和文档。

结果:我能找到的所有示例似乎都围绕着将现有的 WPF 应用程序转换为 UWP。因此,我认为这不是解决方案。我可能是错的...

下面是从 UWP 应用启动我的 WPF 应用的相关代码:

int messageNumber;
    private async void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        if (this.messageNumber == 0)
        {
            await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync();
        }
        this.messageNumber++;

        await AppServiceManager.SendMessageAsync(
          $"Message number {this.messageNumber}");
    }

正如我上面提到的,现在我只是按照微软的例子。我最终想添加更复杂的代码并能够调试。

我还能如何获得从 UWP 应用启动的 WPF 应用的调试功能?

谢谢

4

2 回答 2

8

为了在您的 UWP 项目中调试完全信任进程,您必须在不调试的情况下启动 UWP 进程(或从中分离调试器)。然后将调试器附加到完全信任进程,您的断点将被命中。

我意识到这不是一个理想的工作流程,我们正在努力在未来的 VS 更新中改进这一点。

于 2017-05-21T14:27:48.930 回答
0

Advanced Installer(MSFT 合作伙伴)现在为 Visual Studio 2015 和 2017 提供了一个扩展,它可以从单个项目构建 AppX(连同您的 MSI/EXE)包,并且还可以通过几次单击来调试您的应用程序 - 比当前的解决方案。

- 观看视频演示 -

于 2017-05-31T13:37:17.227 回答