这个问题已经在这里有一个答案:
- 在ASP.NET MVC编译浏览 8个回答
- 有错误的剃刀语法编译时,它不应该编译 1个回答
我最近安装了VS 2012专业版。
当我尝试建立我的MVC4 Web项目。 它不会在Razor视图承认错误,当我做“生成”或“重新构建”。
例如 :
我删除命名空间从项目/或者说给它改名。 我构建解决方案,它给我的错误在所有的CS文件,这是我固定通过改变名称空间。 整个解决方案成功打造。 当我运行该项目,它给了我编译错误说,命名空间没有找到,因为旧的命名空间是在一些看法(* .cshtml文件)仍称。
预计解决方案 :
我希望当我做“生成”或“重新构建”,应该认识到这样的错误,让我看看连同其他任何错误。
这是工作的罚款VS 2010中,我失去了任何配置?
提前致谢 !! 阿米特
编辑我发现自己的答案,我认为这是年初发布问题:
有错误的剃刀语法编译时,它不应该编译
另一个问题
在.csproject文件变更值的真,当我开始建立它显示了错误的项目,但它显示了在同一时间只有一个错误后。 比方说,我在总3次5个错误。 它只是告诉我一个错误。 是否有任何解决方案,因此,它显示了所有的5个错误?
当我尝试建立我的MVC4 Web项目。 它不会在Razor视图承认错误,当我做“生成”或“重新构建”。
似乎是正常的。 剃刀视图由ASP.NET运行时动态编译。 如果你希望你的意见,在编译时建立,你可以添加下面的选项到你.csproj
文件:
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
你可以看看在这篇文章的更多细节。
我建议你添加MmvcBuildViews标签作为发行的PropertyGroup标签的孩子,所以当你在释放模式(或当您在发布模式发布)编制的意见只是编译。 这样一来,您的应用程序速度更快,当你正在调试。 而且,你在部署之前编译时检查(当你建立在释放模式)。 总之,您获得两全其美。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
根据我的经验,除了真正的设置上面提到的,你还需要确保以下设置在您的csproj文件存在:
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
默认情况下,它不会编译意见。 您可以启用此功能,但请记住,它会增加编译时间。
您可以启用通过以下步骤编译观点:
- 卸载项目
- 打开项目文件
- 查找
<MvcBuildViews>false</MvcBuildViews>
并改变它有true
- 关闭项目文件并重新加载项目
它真的很简单答案通过这个步骤去:
卸载项目
编辑项目
比搜索:
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
下面添加
<Target Name="AfterBuild" Condition="'$(Configuration)'!='Debug'">
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>
这比卸载项目。 建立
并检查乌尔语法正常工作。
我确定。