解释这个的最好方法是描述我如何随意重现问题。
所以,故事的寓意是在关闭并重新打开VS2013之后,任何添加自定义用户控件的尝试都将挂起VS2013,唯一的解决方法是重置工具箱并重新添加用户控件DLL;补救措施只会持续到VS2013退出并重新启动。
许多谷歌搜索已经提出了关于使用第二个VS实例附加到第一个并查看引发的异常的建议,但是没有抛出异常;应用程序刚刚挂起。
我发现最接近描述我的问题的一件事是与我不使用的某些远程桌面软件有关。
有人有任何想法吗?我没有尝试重新安装Visual Studio,因为这代表了相当多的停机时间。最后的事情(我读过一些表明它没用的东西)。
编辑:显然有时重置/重新添加不会使其更好。
编辑:我应该提到的其他一些事情:
答案 0 :(得分:1)
使用自定义UserControl挂起Visual Studio非常容易 。只需一个简单的例子,双击设计图面并写下:
private void UserControl1_Load(object sender, EventArgs e) {
while (true) { }
}
从工具箱顶部编译并删除添加的控件并将其放在表单上。秀结束了。
你可能没有花足够的时间使用你已经找到的指导,或者我们有一个堆栈跟踪来查看。附加调试器很容易,如果代码抛出异常,您就可以领先。但它并没有,像这样的悬挂并没有抛出。练习调试这个特殊的简单挂起以了解如何操作:
通常,UserControl中可能导致挂起的代码的主要候选者是其构造函数,其Load事件及其Paint事件。使用DesignMode property来绕过在设计器内部而不是常规进程中运行时不太可能正常工作的危险代码。并且要注意鸡和蛋的问题,如果你的UserControl中有一个普通的错误,那么它就可以在你有机会像往常一样调试它之前在设计时轻松敲击。可能需要禁用代码块以增加错误,使用DesignMode到达那里。
还有一个细节,这是标记[c ++ - cli]。您必须选择旧的调试引擎来调试C ++ / CLI代码。工具>选项>调试>一般>勾选"使用托管兼容模式"复选框。
答案 1 :(得分:0)
在将VS2013更新为 12.0.40629.0 Update 5 之后,问题似乎已经消失,通过选择 TOOLS >找到扩展程序和更新,然后选择左侧的更新。
它可能不适用于设计师看似无法解释的UserControl煽动挂起的所有情况,但它似乎为我解决了这个问题。我把它放在这里(而不是删除问题),以防我的经验可以帮助别人。