我最近安装了VS 2012 Professional。
当我尝试构建我的MVC4 Web项目时。当我执行“构建”或“重新构建”时,它无法识别剃刀视图中的错误。
示例:
我从项目中删除了一个名称空间/或者说重命名了它。我构建了解决方案,它给了我所有cs文件中的错误,我通过更改命名空间来修复。整个解决方案成功构建。当我运行该项目时,它给了我编译错误,说明找不到命名空间,因为旧的命名空间仍然在某些视图(* .cshtml文件)中被引用。
预期解决方案:
我希望当我做“构建”或“重新构建”时,它应该识别这些错误并向我显示任何其他错误。
VS 2010正常运行,我缺少任何配置吗?
提前致谢!! 阿米特
修改 我自己找到了答案,我认为发布这个问题还为时过早:
razor syntax with errors compiles when it should not compile
另一个问题
在.csproject文件中将值更改为True后,当我开始构建时 它显示错误的项目,但它一次只显示一个错误。 比方说,我在3个视图中有5个错误。它会告诉我一个 错误。有没有解决方案,以便显示所有5个错误?
答案 0 :(得分:72)
当我尝试构建我的MVC4 Web项目时。它无法识别错误 当我做“构建”或“重新构建”时剃刀视图。
似乎很正常。 Razor视图由ASP.NET运行时动态编译。如果您希望在编译时构建视图,可以将以下选项添加到.csproj
文件中:
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
您可以查看this article了解详情。
答案 1 :(得分:20)
我建议您将MmvcBuildViews标记添加为Release PropertyGroup标记的子级,以便仅在以发布模式编译时(或在发布模式下发布时)编译视图。这样,您的应用程序在调试时会更快。并且,在部署之前(在构建发布模式时),您将获得编译时检查。总而言之,您将获得两全其美。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
答案 2 :(得分:16)
根据我的经验,除了 真正 上面提到的设置,你仍然需要确保你的csproj文件中存在以下设置:
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
答案 3 :(得分:11)
默认情况下,它不会编译视图。您可以启用此功能,但请记住它会增加构建时间。
您可以按照以下步骤启用编译视图:
<MvcBuildViews>false</MvcBuildViews>
并将其更改为true
答案 4 :(得分:1)
它非常简单的答案完成这个步骤:
卸载项目
编辑项目
比搜索:
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
下面添加
<Target Name="AfterBuild" Condition="'$(Configuration)'!='Debug'">
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>
那就是卸载项目。构建
Check Ur语法工作正常。
我当然。