首页 > 解决方案 > 在本地主机上使用 ASP.NET Web 应用程序时如何清除 razor 文件的缓存

问题描述

我们有一个使用 .NET 框架 4.6 的 ASP.NET 网站,我们使用 Rider 和 Visual Studio 来处理它。

每隔一段时间,我就会发现人们得到旧的 razor 文件,这些文件仍然试图寻找不再存在的函数/引用。我知道那些剃刀文件被缓存了,我们需要清除缓存。

所以,我们通常会走这些步骤

  1. 清理 %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\\ComponentModelCache
  2. 清理 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root
  3. 在适用的情况下,从项目文件夹结构中清除 \obj 和 \bin。

这些步骤的某些组合通常适用于大多数人,但当它不起作用时,我们必须手动转到每个剃须刀文件(抱怨错误)并添加空格并保存以强制清除缓存。有时它是单个文件或 2 个文件,但有时有 10 个文件。

因此,想知道每当我们再次发现此问题时清除剃刀文件缓存的正确/推荐方法是什么。

标签: c#asp.net

解决方案


  1. 如果您需要清除已编译的剃须刀文件,那么“临时 ASP.NET 文件”是最佳位置,根据此答案

  2. 您还可以尝试通过将MvcBuildViews添加到构建配置来强制编译:

    <PropertyGroup>
      <MvcBuildViews>true</MvcBuildViews>
    </PropertyGroup>
    

    有关更多信息,请参阅此答案

  3. 如果以上都不起作用,打开所有文件并添加空格更好的解决方法是更新所有视图的文件修改时间:

    Get-ChildItem .\Views\ -Recurse | % { $_.LastWriteTime = Get-Date }
    

推荐阅读