如何调试从Full Trust Process Launcher启动的.exe

Pat*_*atH 2 debugging uwp desktop-bridge

我在同一个解决方案中构建了一个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}");
    }
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

Ste*_*SFT 7

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

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