You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code缓存ASP.NET Core 8.0 MVC视图异常问题求助

问题描述

我有一个ASP.NET Core 8.0 MVC项目,在VS Code里碰到个怪事:改了路由和视图之后,系统完全不认这些变更,一直重定向到某个特定区域,试了各种修改都没用。但把项目拿到VS 2022里打开,一切又正常了。

我把那个被重定向的区域文件夹都删了,启动项目时却发现该区域和视图还在。我清理了各种缓存,甚至卸载重装了VS Code,问题还是没解决。

想问下是不是还有遗漏的Windows缓存或临时文件?VS Code是怎么缓存视图的?

原启动配置文件

"configurations": [
    {
        // Use IntelliSense to find out which attributes exist for C# debugging
        // Use hover for the description of the existing attributes
        // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md.
        "name": "Dev .NET Core Launch (web)",
        "type": "coreclr",
        "request": "launch",
        "preLaunchTask": "build",
        // If you have changed target frameworks, make sure to update the program path.
        "program": "${workspaceFolder}/bin/Debug/net8.0/MyCoreProject.Web.dll",
        "args": [],
        "cwd": "${workspaceFolder}",
        "stopAtEntry": false,
        // Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
        "serverReadyAction": {
            "action": "openExternally",
            "pattern": "\\bNow listening on:\\s+(https?://\\S+)"
        },
        "env": {
            "ASPNETCORE_ENVIRONMENT": "Development"
        },
        "sourceFileMap": {
            "/Views": "${workspaceFolder}/Views"
        },
        
    }
]
解决方案

一、排查遗漏的Windows缓存/临时文件

  • 清理编译产物缓存:直接删掉项目根目录下的bin和obj文件夹,这俩目录存的是编译生成的中间文件,旧产物残留很容易导致路由和视图不更新。
  • 清理ASP.NET Core运行时缓存:删掉%USERPROFILE%\.aspnet\DataProtection-Keys里的文件,还有%LOCALAPPDATA%\Temp\ASP.NETCore文件夹,这些是ASP.NET Core运行时的临时缓存,有时候会卡住旧的配置。
  • 清空浏览器缓存:如果是浏览器端的重定向问题,大概率是浏览器缓存了旧路由,按Ctrl+Shift+Delete清理,重点选“缓存的图像和文件”。
  • 检查IIS Express缓存(如果用了的话):要是项目用IIS Express运行,删掉%USERPROFILE%\Documents\IISExpress里的相关站点配置和缓存文件。

二、VS Code对ASP.NET Core视图的缓存逻辑

VS Code本身不会直接缓存ASP.NET Core视图,问题大多出在这些环节:

  • C#扩展的调试缓存:VS Code的C#扩展调试时可能会缓存编译后的程序集,虽然你启动配置里设了preLaunchTask": "build",但可以手动先跑dotnet clean再dotnet build,确保完全清理旧产物。
  • Razor视图编译缓存:ASP.NET Core开发环境默认动态编译Razor视图,但偶尔会有缓存残留。可以在项目的.csproj文件里加这段配置,强制禁用编译缓存:
    <PropertyGroup>
      <RazorCompileOnBuild>false</RazorCompileOnBuild>
      <RazorCompileOnPublish>true</RazorCompileOnPublish>
    </PropertyGroup>
    
  • VS Code工作区缓存:VS Code的工作区索引可能残留旧文件信息,按Ctrl+Shift+P打开命令面板,执行Developer: Reload Window重启窗口;或者备份后删掉项目根目录的.vscode文件夹,重新生成配置。

额外排查点

  • 检查sourceFileMap配置:你的启动配置里设了"/Views": "${workspaceFolder}/Views",确认这个路径没指向旧的区域文件夹。
  • 核对项目路由配置:检查Startup.cs或Program.cs里的路由规则,比如app.MapAreaControllerRoute的配置是不是还关联着旧区域。
  • 确认环境变量和缓存中间件:启动配置里的ASPNETCORE_ENVIRONMENT是Development,确保开发环境没启用app.UseResponseCaching()这类缓存中间件,不然会缓存路由响应。

内容的提问来源于stack exchange,提问作者Braden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 03:21:14