如何调试从 Full Trust Process Launcher 启动的 .exe
How to debug a .exe launched from FullTrustProcessLauncher
我在同一个解决方案中构建了一个 UWP 应用和一个 WPF 应用。我正在使用 Full Trust Process Launcher class 从 UWP 应用程序启动 WPF 应用程序。我还使用 App Service Connection class 允许两个应用程序相互通信。这一切在基本场景中都可以正常工作。但是,一旦我开始真正开发我的 WPF 应用程序,而不是我能找到的示例,我将需要在 visual studio 中开始调试。
我试过以下方法:
- 在 WPF 代码中设置断点。
结果: 没想到会这样,结果没有。
- 在 UWP 启动后附加到 运行 WPF 进程。
结果:选择运行WPF进程时的"attach"按钮是灰色的。
- 我开始研究新的 VS 扩展 "Desktop Bridge Debugging Project",然后是示例和文档。
结果:我能找到的所有示例似乎都围绕着将现有 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}");
}
正如我上面提到的,现在我只是在关注 Microsoft 示例。我最终想添加更复杂的代码并能够调试。
我还能如何获得从 UWP 应用程序启动的 WPF 应用程序的调试功能?
谢谢
为了在您的 UWP 项目中调试 fulltrust 进程,您必须在不调试的情况下启动 UWP 进程(或从中分离调试器)。然后将调试器附加到 fulltrust 进程,您的断点将被命中。
我意识到这不是一个理想的工作流程,我们正在努力在 VS 的未来更新中改进这一点。
Advanced Installer (a MSFT partner) 现在提供 Visual Studio 2015 和 2017 的扩展,可以从单个项目构建 AppX(连同您的 MSI/EXE)包以及 只需点击几下即可为您的应用程序启用调试 - 比当前解决方案简单得多。
我在同一个解决方案中构建了一个 UWP 应用和一个 WPF 应用。我正在使用 Full Trust Process Launcher class 从 UWP 应用程序启动 WPF 应用程序。我还使用 App Service Connection class 允许两个应用程序相互通信。这一切在基本场景中都可以正常工作。但是,一旦我开始真正开发我的 WPF 应用程序,而不是我能找到的示例,我将需要在 visual studio 中开始调试。
我试过以下方法:
- 在 WPF 代码中设置断点。
结果: 没想到会这样,结果没有。
- 在 UWP 启动后附加到 运行 WPF 进程。
结果:选择运行WPF进程时的"attach"按钮是灰色的。
- 我开始研究新的 VS 扩展 "Desktop Bridge Debugging Project",然后是示例和文档。
结果:我能找到的所有示例似乎都围绕着将现有 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}");
}
正如我上面提到的,现在我只是在关注 Microsoft 示例。我最终想添加更复杂的代码并能够调试。
我还能如何获得从 UWP 应用程序启动的 WPF 应用程序的调试功能?
谢谢
为了在您的 UWP 项目中调试 fulltrust 进程,您必须在不调试的情况下启动 UWP 进程(或从中分离调试器)。然后将调试器附加到 fulltrust 进程,您的断点将被命中。
我意识到这不是一个理想的工作流程,我们正在努力在 VS 的未来更新中改进这一点。
Advanced Installer (a MSFT partner) 现在提供 Visual Studio 2015 和 2017 的扩展,可以从单个项目构建 AppX(连同您的 MSI/EXE)包以及 只需点击几下即可为您的应用程序启用调试 - 比当前解决方案简单得多。