我在同一个解决方案中构建了一个 UWP 应用和一个 WPF 应用。我正在使用 FullTrustProcessLauncher 类从 UWP 应用程序启动 WPF 应用程序。我还使用 AppServiceConnection 类来允许两个应用程序相互通信。这一切在基本场景中都可以正常工作。但是,一旦我开始真正开发超出示例的 WPF 应用程序,我将需要在 Visual Studio 中开始调试。
我尝试了以下方法:
- 在 WPF 代码中设置断点。
结果:我没想到这会奏效,它没有。
- 在 UWP 启动后附加到正在运行的 WPF 进程。
结果:选择正在运行的 WPF 进程时的“附加”按钮灰显。
- 我开始研究新的 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 应用的调试功能?
谢谢
最佳答案
为了调试 UWP 项目中的完全信任进程,您必须在不调试的情况下启动 UWP 进程(或从中分离调试器)。然后将调试器附加到完全信任进程,您的断点将被命中。
我意识到这不是一个理想的工作流程,我们正在努力在未来的 VS 更新中改进这一点。
关于debugging - 如何调试从 FullTrustProcessLauncher 启动的 .exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44086262/