最近嘛,看看Blazor已經蠻成熟的。順便想在自家的框架裡使用這個東西,畢竟我還是很念舊的,而且Blazor的技術棧也不麻煩。然後呢,在除錯這一關我可是踩了大坑。

我的VS是2019,很早以前裝的。然後呢,我非常開心的下載了.NET 5.0的SDK,安裝並且在我的專案框架里加入了我想了一整天的全新專案(指名字):Ricebird.BlazorShared。

再之後,我想著,總得除錯一下啊,開啟msdn,搜尋 debug blazor 立刻看到一篇文章 : https://docs.microsoft.com/zh-cn/aspnet/core/blazor/debug

這就是為什麼我喜歡微軟,文件全啊。按照這個文件一頓操作,F5除錯。然後,斷點無效。就是下圖這個樣子。

然後,我瘋狂折騰了一天,發現了一個非常讓我吐血的事實,想要除錯Blazor,請務必注意那篇文件裡的幾個重點:

1. VS必須升級最新版,如果你和我一樣,是老早老早的VS 2019,一切免談。我升級之後的是VS 2019 16.11

2. 瀏覽器必須是Chrome或者Edge。直接用IIS Express啟動,請務必看清瀏覽器。像我一樣,預設是 360瀏覽器 你改死了也沒用。。。

3. 除錯的時候,按下圖選擇你的“啟動專案”,不要選那個IIS Express。我測試過,選那個系統是不會進行JS附加的,所以你就除錯不了。同時看到那個“指令碼除錯(已啟用)”了嗎?如果是“已禁用”狀態請務必開啟 !!!!

4. 如果一切順利,你的VS會開啟一個命令列視窗,就像這樣:

在有這個窗口出現時,你的瀏覽器也是Edge或者Chrome,那就可以正常的進行除錯。

5. app.UseWebAssemblyDebugging(); 這個東西也許是已經過時了,我測試過,不加這一句也是可以除錯的。

總之,在啟動的時候沒有看到第4步那個命令列視窗,你的Blazor就沒有進除錯狀態,然後就會涼涼。。。!!!

最後嘛,好像Blazor沒有辦法邊除錯邊修改。如果你修改了程式碼就必須中止除錯,然後重新編譯。巨坑!