razor的意见是不给编译时错误

我最近安装了VS 2012 Professional。

当我尝试构build我的MVC4 Web项目。 它不能识别剃刀视图中的错误,当我做“生成”或“重新生成”。

例如
我从项目中删除了一个命名空间/或者重命名它。 我build立的解决scheme,它给了我所有的CS文件错误,我通过改变命名空间。 整个解决scheme构build成功。 当我运行该项目时,它给了我编译错误说没有find命名空间,因为旧的命名空间仍然在一些视图(* .cshtml文件)中引用。

预期的解决scheme
我希望当我做“build造”或“重build”,它应该承认这样的错误,并显示我与任何其他错误。

这与VS 2010工作正常,我错过任何configuration?

提前致谢 !! 阿米特

编辑我自己find了答案,我认为这是提前发布的问题:

有错误的剃刀语法编译时,它不应该编译

另一个问题

在.csproject文件中将值更改为True后,当我开始构build项目时显示错误,但一次只显示一个错误。 比方说,我总共有3个意见5错误。 它只会显示我一个错误。 有没有解决scheme,以显示所有的5个错误?

当我尝试构build我的MVC4 Web项目。 它不能识别剃刀视图中的错误,当我做“生成”或“重新生成”。

看起来很正常。 Razor视图由ASP.NET运行时dynamic编译。 如果你想在编译时build立你的视图,你可以在你的.csproj文件中添加下面的选项:

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

你可以看看这篇文章的更多细节。

我build议您将MmvcBuildViews标记添加为Release PropertyGroup标记的子元素,以便仅在发布模式下进行编译时(或在发布模式下发布时)才会编译视图。 这样,您的应用程序在debugging时速度更快。 而且,在部署之前(当您在Release模式下构build时),您将进行编译时检查。 总之,你得到两全其美。

 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <MvcBuildViews>true</MvcBuildViews> </PropertyGroup> 

默认情况下,它不会编译视图。 您可以启用此function,但请记住它会增加构build时间。

  • 您可以按照以下步骤启用编译视图:卸载项目。
  • 打开项目文件。
  • find<MvcBuildViews>false</MvcBuildViews>并将其更改为true
  • closures项目文件并重新加载项目

根据我的经验,除了上面提到的真正的设置之外,你还需要确保在你的csproj文件中存在下面的设置:

 <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> </Target> 

它真的非常简单的答案去经过这个步骤:

卸载项目

编辑项目

比search:

 <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> </Target> 

下面加

 <Target Name="AfterBuild" Condition="'$(Configuration)'!='Debug'"> <RemoveDir Directories="$(BaseIntermediateOutputPath)" /> </Target> 

这是比卸载项目。 build立

并检查Ur语法是否正常工作。

我确定。