這個坑我踩兩三次了,氣自己記性真差,還是寫篇筆記吧。

狀況是在 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 樂透無名

難不成之前就是遇到這個?不筆記不行啊...(跪謝)

Post a comment