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语法是否正常工作。
我确定。