VS Code调试.NET Core解决方案时子文件夹HTML修改刷新不生效
解决方案
1. 修复调试工作目录(解决Razor修改不生效+空引用异常)
问题核心是调试时的工作目录指向了解决方案根目录,而非MVC项目的根目录,导致ASP.NET Core无法正确定位视图文件路径,既触发不了Razor热重载,还会在启用Runtime Compilation时抛出空引用异常。
修改launch.json中的cwd配置项,将其指向MVC项目根目录:
"cwd": "${workspaceFolder}/TestMVCApp",
修改后的对应配置段完整内容:
{ "name": ".NET Core Launch (web)", "type": "coreclr", "request": "launch", "preLaunchTask": "build", "program": "${workspaceFolder}/TestMVCApp/bin/Debug/net6.0/TestMVCApp.dll", "args": [], "cwd": "${workspaceFolder}/TestMVCApp", "stopAtEntry": false, "serverReadyAction": { "action": "openExternally", "pattern": "\\bNow listening on:\\s+(https?://\\S+)" }, "env": { "ASPNETCORE_ENVIRONMENT": "Development" }, "sourceFileMap": { "/Views": "${workspaceFolder}/TestMVCApp/Views" }, "logging": { "moduleLoad": false, "engineLogging": false, "exceptions": true, "programOutput": true, "browserStdOut": false } }
2. 安装Razor Runtime Compilation NuGet包
.NET 6及以上版本默认不包含Razor运行时编译组件,需手动安装:
切换到TestMVCApp目录,执行终端命令:
dotnet add package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
3. 验证功能
重启VS Code调试会话,修改Views/Home/Index.cshtml中的H1标签内容,刷新Chrome浏览器,修改会立即生效;空引用异常也会随之消失。
补充说明
- 单独打开MVCApp文件夹时,VS Code默认工作目录为项目根目录,因此热重载正常;打开解决方案根目录时必须手动指定调试工作目录为MVC项目路径。
- 空引用异常是因为Runtime Compilation在工作目录错误时,无法找到必要的配置或视图路径,导致内部依赖项为空,修复工作目录即可解决。
内容的提问来源于stack exchange,提问作者Mike Smith
相关产品推荐
相关产品推荐

