2023年8月22日 星期二

VSCode 偵錯 NET Core App 失效?

一些輕巧的驗證想法專案,有時候會使用 VSCode 來快速建立,但是若要能「偵錯」專案,就需要

一些設定,這時相關步驟就需要紀錄一下,雖然官網有提到但細節上可能沒有到位,故筆記一下



使用 .NET CLI 建立專案,步驟如下


建立目錄 mkdir(這是 cmd 指令非)


切換到目錄


建立 Console 類型專案

> dotnet new console –sdk


接著準備使用 VSCode 開啟資料夾,可以參考 code cli,其中 -n 代表在新的 VSCode 開啟目錄

> code -n path



專案建議後,直接使用 ctrl + shift + b 建置專案,此時 .vscode 資料夾下會出現兩個檔案,

分別是 launch.json、tasks.json(Visual Studio 則無)



此時檢視 Program.cs 檔案,內容僅有 Hello, World!



按下 「F5」會跑一些訊息,並且印出 Hello, World! 文字


此時下中斷點,再按F5,看起來確實會進入中斷點


但若此時將 Program.cs 檔案內容修改一下,調整需要等待使用者輸入的情境


跑「F5」發現在 Debug Console 輸入文字後按下 「Enter」並未如期讓程式繼續往下執行,如下圖


停用偵錯,開啟 launch.json 檔案找到 console 屬性,修改為 「integratedTerminal」(ctrl + space to select),

原預設值是 「internalConsole」


修改後儲存,並且跑 F5

此時,左邊的Debug 視窗同樣會顯示相關資訊,如 local 變數的即時值,右下方的 Terminal 視窗會如

程式執行流程,提示請使用者輸入 名字,輸入後按下 enter,程式會停在中斷點的位置,若以當前來看

會是在 var currentDate 的這一段


再按下 F5 ,讓程式繼續往下跑印出最後的結果



最後,其實若程式需要偵錯,一般使用預設的 internalConsole 已足夠


但若程式有需要透過 terminal 與使用者互動,那就要設定為正確偵錯並且搭配 terminal 


最後的最後,若是驗證可行性,其實使用 LINQPad 是最佳解,只是僅有付費版才支援中斷點



【參考】

沒有留言:

張貼留言