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

时间:2014-06-12 20:33:42

标签: c# asp.net-mvc razor

默认情况下,Visual Studio仅检查CSHTML文件的构建错误(如果它们在构建时打开)。我想在构建闭包的CSHTML文件时实现这一点。

我在这篇文章中看到过:How to compile cshtml before runtimethis post

解决方案很简单,只需在csproj文件中设置:

<MvcBuildViews>true</MvcBuildViews>

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


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

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

1 个答案:

答案 0 :(得分:0)

  

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

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

  

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

这是什么意思?视图为vbhtmlcshtml。没有.cs扩展程序的观看次数。

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

  

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

使用<MvcBuildViews>时,有大量答案(1 2 3 4}。

了解MVC项目(实际上是Web项目)的重要一点是,每个视图都默认编译在项目的obj / bin目录中。当IIS和IIS Express尝试再次编译视图(当它们已经存在时)时,通常会出现此问题。因此,上面列出的修复程序将编译目录更​​改为项目外的目录。