flathub / flathub/com.visualstudio.code

C# Debugger for ASP.NET Project gives different results than using dotnet run

Đang mở
#698 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Shell
Star
217
Fork
82
Merge trung bình
1 ngày 7 giờ
Pull request đã merge (30 ngày)
1

Mô tả

Created several C# ASP.NET projects and tried using the C# and C# Dev Kit Extensions' Debugger. In most cases, it works as expected but additional issues keep piling up and could not find any solutions.

Eventually, I discovered that running `dotnet run` from the terminal resolved these issues, but could not find out why.

### PROBLEM - Using the C# VS Code Debugger vs `dotnet run` has different results

- Pages cannot be found by the Debugger unless using the RazorRuntimeCompilation NuGet package and adding it in program.cs
- Translations through .resx files are not applied when using the debugger.
- View overrides through scaffolding are not applied, and reverts to a default.

### ISSUE 1 - Loading .resx files

One MVC project uses .resx files for localization. Running this project with `dotnet run` has the page display in the correct languages.
When using the Debugger, it only shows English. In code, I've tried to print a list in the console of all keys, but it throws a MissingManifestResourceException when using the debugger, which seems to indicate that it cannot find the resx files.

### ISSUE 2 - View Override

A different MVC Project is set up with the Security template option to create local accounts. I've scaffolded the default Register page to also allow users to input additional information like First Name, Middle Name, Last Name, etc.

Using `dotnet run`, navigating to the page to Register shows the additional fields I've added.

Using the Debugger, it just shows the standard Register page without my changes. For some reason, the debugger does not find my changed files. First image is the page using the Debugger, second one is using `dotnet run`

Image

Image

### Things I've tried

- Ensured that launch.json and launchsettings.json match. They do.
- Toggle AddRazorRuntimeCompilation() in program.cs to see if it makes any difference. Without it, using the debugger doesn't work as it cannot find ANY file at all.
- Asked on Stack Overflow. No replies.

Most of my findings point towards the Flatpak being sandboxed and VS Code's Debugger being unable to find the correct files. But the debugger and dotnet commands have the same permissions so not sure why it could cause a difference.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Reproduce the reported differences in an ASP.NET project using the VS Code debugger and `dotnet run`. Start by comparing `launch.json` and `launchsettings.json`, then inspect `Program.cs`, the `.resx` resources, and scaffolded Razor views. Done means identifying and documenting a reproducible cause for the missing resources and view overrides, or confirming the debugger and terminal behavior are equivalent.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
csharp, vscode
Lĩnh vực
backend, devtools
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
32/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.