打开 Visual Studio 设计器时遇到异常。
您可以找到完整的堆栈跟踪here .
我已经问过 question我在其中解释了从 XAML 传递到设计器时发生的崩溃。
安answer建议使用 Visual Studio 的第二个实例来调试设计器。
我尝试过以下方法:
- 打开 Visual Studio 的第二个实例,附加
devenv.exe
进程,在InitializeComponent
上设置断点(由我的RadWindow 的构造函数调用)
)。 - 转到 Visual Studio 的第一个实例,打开设计器。
什么也没发生(即未到达断点)。您知道如何执行调试吗?
提前谢谢您。
最佳答案
你的方法几乎是正确的。但是,管理设计时 WPF 渲染的过程因 Visual Studio 版本而异:
Visual Studio 2010 -> devenv.exe
。
Visual Studio 2012+ -> XDesProc.exe
。
Visual Studio 2022 -> WpfSurface.exe
。
方法:
使用相同的解决方案打开第二个 Visual Studio。
在第二个 VS 中设置断点。
构建解决方案(在任一 VS 中)。
VS2012 及更高版本:
发生的某些缓存会阻止命中断点,因此为了规避这种情况,请通过 Windows 任务管理器结束所有正在运行的 WPF 渲染进程。(VS2012 及更高版本):
要重新启动渲染过程,请在第一个 VS 实例中打开任何 xaml 文档(不是您想要调试的文档)。新的渲染过程开始!在第二个 VS 实例中,附加到新启动的渲染进程 (
XDesProc.exe
/devenv.exe
/WpfSurface.exe
)在第一个VS中打开您想要调试的xaml文档。
断点命中!
注意:断点应为红色以表明它们处于事件状态。如果不是,则调试器使用的文件与 build 不匹配。如果是这样,请停止调试,结束渲染进程,重新构建并重试。
关于c# - 调试 Visual Studio 设计器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29889803/