如何在构建期间检查视图文件是否存在构建错误(未打开)

本文关键字:构建 错误 存在 是否 文件 视图 检查 | 更新日期: 2023-09-27 18:08:18

默认情况下,Visual Studio只在构建时打开CSHTML文件时检查构建错误。我想在构建封闭的CSHTML文件时也这样做。

我在这篇文章中看到:如何在运行前编译cshtml或这篇文章

解决方案很简单,只需在csproj文件中设置:
<MvcBuildViews>true</MvcBuildViews>

不幸的是,这会在它在临时文件夹中生成的cs文件中引发错误。cs文件是转换后的cs html文件,它们本身是不可编译的,因此我得到了各种实际上不存在的构建错误。


我目前的解决方案是,我保持MvcBuildViews设置为false,然后在构建之前手动打开项目中的所有CSHTML文件。

是否有跳过临时文件的修复,或者比打开所有CSHTML文件更有效的方法?

如何在构建期间检查视图文件是否存在构建错误(未打开)

是否有跳过临时文件的修复,或者比打开所有CSHTML文件更有效的方法?

唯一支持的方式是<MvcBuildViews>项目配置元素。它由MsBuild支持,它允许无人参与的构建工作。这是检查视图中构建错误的最有效的方法。

cs文件是转换后的cs html文件

那是什么意思?视图类型为vbhtmlcshtml。没有扩展名为.cs的视图。

如果不添加正确的配置元素(如下),当将cshtml文件转换为.cs(中间文件)然后编译时,您可能会得到一些奇怪的错误。

不幸的是,这会在它在临时文件夹中生成的cs文件中引发错误。

使用<MvcBuildViews>有很多答案(1 2 3 4)。

了解MVC项目(实际上是一般的web项目)的重要事情是,默认情况下,每个视图都在项目的obj/bin目录中编译。当IIS和IIS Express尝试再次编译视图时,当视图已经存在时,通常会存在这个问题。因此,上面列出的修复将编译目录更改为项目外部的目录。