如果 .cshtml 文件中存在 razor/C# 错误,如何在 VS 2013 中使构建失败? [复制]
Posted
技术标签:
【中文标题】如果 .cshtml 文件中存在 razor/C# 错误,如何在 VS 2013 中使构建失败? [复制]【英文标题】:How can I make builds fail in VS 2013 if there's a razor/C# error in a .cshtml file? [duplicate] 【发布时间】:2013-12-08 00:26:55 【问题描述】:我是 asp.net mvc 的新手。我在我的 .cshtml 页面上的一些剃刀代码中看到了令人讨厌的红色小下划线,错误列表中有错误,但该项目仍在构建中。如果出现这些错误,我能否以某种方式使项目构建失败?
顺便说一句,如果我重命名剃刀页面中引用的 c# 类中的变量,为什么重构工具不将其范围扩展到 cshtml 文件?
【问题讨论】:
【参考方案1】:您需要在您的项目中设置在构建期间编译视图。
在你的 MVC 项目中设置:
<MvcBuildViews>true</MvcBuildViews>
您所要做的就是卸载或在 Visual Studio 中关闭 mvc 项目,编辑 .cspoj
文件(在 VS 或记事本或您喜欢的编辑器中),找到 <MvcBuildViews>
并更改值true
。
【讨论】:
***.com/questions/383192/compile-views-in-asp-net-mvc 好极了,这行得通。 你能在 .csproj.user 文件中设置这个吗? 我是否正确假设他只适用于强类型视图? @TorbenRahbekKoch,在大多数情况下,是的,你是对的。但是您的代码错误可能出现在您在 Razor 视图中输入的某些代码中。【参考方案2】:假设您的构建过程在部署之前使用 Release 构建,则仅将 MvcBuildViews 设置用于 Release 构建可能很聪明。这将消除在开发和调试时编译视图的额外等待,但在部署之前仍会进行检查。将 MvcBuildViews 节点添加到 PropertyGroup 节点,仅用于发布版本。它看起来像这样:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
http://blog.falafel.com/get-compile-time-view-errors-in-asp-net-mvc/
【讨论】:
实际上,出于不同的原因,我必须这样做。部署模式下的构建器从 asp 编译器抛出不存在的错误。所以,我只在发布模式下使用 MvcBuildViews。无论如何,每次我提交时都会检查这一点。 这里有一个讨论***.com/questions/28665470/…以上是关于如果 .cshtml 文件中存在 razor/C# 错误,如何在 VS 2013 中使构建失败? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 vNext 中将所有 cshtml 文件编译成 DLL 或 .net 程序集?