如果 .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 或记事本或您喜欢的编辑器中),找到 &lt;MvcBuildViews&gt; 并更改值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 程序集?

视图(.cshtml)文件中的编译错误

如何将css文件添加到cshtml文件中?

在 index.cshtml 页面上创建.cshtml?

在 ASP.NET Core Razor 页面中更改 cshtml 文件的名称

Asp.Net Core 入门—— 布局视图_Layout.cshtml