簡體   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