[VisualStudio]如何在設計時期偵錯(Debug in Design-Time)

[VisualStudio]如何在設計時期偵錯(Debugger in Design-Time)

今天Member問了一個問題,大致上是跟如下內容類似,他包裝了一個Server Control,然後在另一個專案中引用,將該元件拉到Design view時卻出現以下錯誤,但這個網頁在Runtime時是正常的,但這個討人厭的錯誤訊息總是讓設計人員感到不安,所以來請教該如何解決這個問題。
image 

要解決這類問題我想第一個要務就是先確認它的錯誤:「Object reference not set to an instance of an object」,翻成中文就是「未將物件參考設定為指定的執行個體」,這個錯誤相信有寫過C#的人應該都有碰過,好了,知道這個錯誤,但我們要怎麼找到這個錯誤發生的位置,最好的當然是讓我可以向Runtime一樣,直接下中斷點去trace吧,要在Design-Time trace程式本身也不困難,就是把它變成Runtime就好啦,如果可以把Visual Studio當成像是IE這樣的執行環境,在裡頭做的動作都可以被截取到(當然不可能全部啦),那就可以偵錯囉,怎麼做?我們就來試看看吧。

首先開啟專案的屬性頁
 
image

接著選擇起始外部程式,然後在程式的路徑中選擇devenv.exe,也就是Visual Studio的執行檔,按下OK。
image

按下F5開始偵錯,你就會發現本來應該是跳出瀏覽器的,現在卻是啟動了另一個Visua Studio。
image

這時候會發現本來的VS畫面已經進入Debug Mode了
 
image

為了測試偵錯的效果,我開啟控制項的原始碼,並在Render的事件中下一個中斷點。
image  

然後再回到新開啟的VS畫面上,嘗試拉一個DigiWinChartControl。

image 

這時候就會進入中斷模式,停在前面我下的中斷點。
image

再往下執行也確實發生了同樣的Error。
image

以上是如何在設計時期進行偵錯的方法,至於是什麼樣的錯誤就不詳述了,以上做法給大家參考。

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。