繁体   English   中英

如何解决和调试Visual Studio设计模式错误?

[英]How to troubleshoot and debug Visual Studio design mode errors?

使用Windows 7和Visual Studio 2010,我正在编写一个C#自定义UserControl。 我在代码视图中进行了数周的编码,最近当我尝试切换到设计模式时,Visual Studio被绞死,“没有回应”。 我可以等一个小时,但仍然没有任何反应。 单击关闭按钮,它会显示“您是否要等待,关闭,重新启动并向Microsoft发送信息”对话框。

有没有办法(堆栈)跟踪设计者试图执行的代码? 也许设计时跟踪消息或断点?

对于Visual Studio 2010, 此答案可以胜任

对于Visual Studio 2012或更高版本,您需要做的是实际调试Visual Studio Designer进程。 要调试的进程称为XDesProc.exe

在此输入图像描述

我做以下事情:

  • 打开两个指向同一解决方案的Visual Studio实例
  • 关闭两个窗口。
  • 杀死任务管理器中的所有XDesProc.exe实例
  • 在Visual Studio实例A中,打开任何视图(不是具有异常的视图)。 这将启动Visual Studio实例A的XDesProc设计器进程
  • 在Visual Studio实例B中,附加到XDesProc.exe上的进程并设置断点,或者设置Break on exceptions
  • 在Visual Studio实例A中,打开视图(具有异常)
  • Visual Studio B应该破解。

在此输入图像描述

如果您错过了它,或者需要重新启动步骤,请从步骤(2)“关闭所有窗口”再次开始查杀XDesProc实例。 有时设计师会启动一次并缓存值,您需要有一个干净的,非例外的设计师来追踪问题。

对于Visual Studio 2010/2013

您可以调试Visual Studio设计器本身! 打开Visual Studio的第二个实例,使用Tools -> Attach To Process并附加到第一个Visual Studio(即devenv.exe )。

在Visual Studio实例#2中 (您执行Attach To Process的那个) :在usercontrol的构造函数上放置一个断点

在Visual Studio实例#1 (原始 实例中 ,将会卡住) :打开您的usercontrol所在的设计器,VS#2中的断点将被命中。

对于Visual Studio 2012

您要调试的过程是XDesProc.exe - 请参阅ABT博士的回答 否则,该过程与Visual Studio 2010/2013相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM