在本地主机上使用 ASP.NET Web 应用程序时如何清除 razor 文件的缓存

Yas*_*ser 5 c# asp.net

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

每隔一段时间,我就会发现有人获取旧的 razor 文件,但仍然尝试查找不再存在的函数/引用。据我了解,这些 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。

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

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

Wil*_*ill 0

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

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

    <PropertyGroup>
      <MvcBuildViews>true</MvcBuildViews>
    </PropertyGroup>
    
    Run Code Online (Sandbox Code Playgroud)

    请参阅此答案以获取更多信息。

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

    Get-ChildItem .\Views\ -Recurse | % { $_.LastWriteTime = Get-Date }
    
    Run Code Online (Sandbox Code Playgroud)