【茶包極短篇】VSCode F5 偵錯 .NET 專案時未反映程式修改
2 |
這個坑我踩兩三次了,氣自己記性真差,還是寫篇筆記吧。
狀況是在 VSCode F5 偵錯 .NET Core/.NET 6+ 專案,明明程式碼已經修改,但執行結果卻像沒改過一樣。
以下圖為例,我在 Hello, World! 下方又加了一行 Conosle.WriteLine(),但 DEBUG CONSOLE 只看到 Hello, World!
但如果是用 dotnet run 就沒問題。
答案超簡單,我忘記我改過 csproj 中的 <TargetFramework>
(本例是從 net7.0 改成 net6.0,實務上較多是 netX.0 改 netX.0-windows):
而 .vscode/launch.json 不會自動更新,仍指向 /bin/Debug/net7.0/blah.dll:
解法是手動修改反映新的路徑,或是將 .vscode 目錄砍掉,按 Ctrl-Shift-P,選 .NET: Generate Assets for Build and Debug 重新產生 .vscode/launch.json 及 tasks.json
Issue when change the targetframework of .NET project, the launch.json won't be updated autmatically and always run compiled assembly of old targetframework.
Comments
# by Anonymous
每次 .Net Core 換版一次都要踩坑一次 真是辛苦了
# by 樂透無名
難不成之前就是遇到這個?不筆記不行啊...(跪謝)