在构建期间检查剃刀错误

Posted

技术标签:

【中文标题】在构建期间检查剃刀错误【英文标题】:Check for razor errors during build 【发布时间】:2011-08-05 18:12:14 【问题描述】:

Visual Studio(我使用的是 2010)是否可以像 C# 项目中的其他代码一样在构建过程中查找 Razor 视图中的错误?

您可以检查代码中的任何错误并认为一切都很好,这只是一种痛苦,但是除非您仔细检查每个视图,否则您似乎无法确定视图。

顺便说一句,我显然不会在我的视图中编写代码 - 例如,我只是在谈论 html 或 URL 扩展方法。

【问题讨论】:

我认为这将完全一样:***.com/questions/383192/compile-views-in-asp-net-mvc Compile Views in ASP.NET MVC的可能重复 【参考方案1】:

尝试在您的项目文件中将 MVCBuildViews 设置为 true(即编辑您的 csproj 文件)

 <MvcBuildViews>true</MvcBuildViews>

【讨论】:

Gave Will +1 让您首先进入那里 - 感谢您阐明解决方案以供快速参考。标记为答案。 @beardtwizzle:你也可以 + JP。这是我完全忘记的 MVC 的一个新功能(我相信 2)(而且绝对是更好的答案)。 @Will 对不起,是的 + JP 应得的 :) 老而金。它节省了我的时间。 对我来说很奇怪,这在现有的属性组中不起作用。它仅在我为其创建特定属性组时才有效,即&lt;PropertyGroup&gt; &lt;MvcBuildViews&gt;true&lt;/MvcBuildViews&gt; &lt;/PropertyGroup&gt;【参考方案2】:

构建视图需要一段时间,额外的 10 多秒来进行调试构建会很快变得烦人,所以我通常只在发布类型构建配置上将 MvcBuildViews 设置为 true。 这样,如果您有构建服务器,它会为您捕获错误,或者您可以不时手动运行发布构建以检查您的视图。

我认为 PropertyGroup 元素的顺序并不重要,但对于更完整的示例,我在 MvcBuildViews 元素的上方和下方包含了元素。

<PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    ...
    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
    <MvcBuildViews>false</MvcBuildViews>
    <UseIISExpress>false</UseIISExpress>
    ...
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ...
    <ErrorReport>prompt</ErrorReport>
    <MvcBuildViews>true</MvcBuildViews>
    <WarningLevel>4</WarningLevel>
    ...
</PropertyGroup>

顶部 PropertyGroup 中的 MvcBuildViews 元素是 VS 在创建项目时添加的,我手动添加了特定于构建配置的元素(底部 PropertyGroup)

【讨论】:

我无法让它工作 - 标签还不存在,我必须手动添加它们(如果相关的话)。我的视图有很多错误,并且构建在任何一种配置中都没有捕捉到它们。 我遇到了和@niico 一样的问题,但发现是PropertyGroup Condition 与我的构建配置和平台不匹配(条件anyCPU,构建x86)。【参考方案3】:

尝试在项目的模式编辑中添加以下程序集:System.core,根据代码:

...
<Reference Include="System.Core, Version=4.0.0.0" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
...

有时这个汇编器不能正确加载,在我的例子中,它工作了!

【讨论】:

以上是关于在构建期间检查剃刀错误的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:在构建错误期间调用了 setState() 或 markNeedsBuild()

Flutter 错误 - 在构建期间调用了 setState() 或 markNeedsBuild()

如何在竹子构建期间仅检查 git 存储库的一部分?

构建 libetpan 项目期间的 ARM64 构建错误

在 Eclipse IDE 中发布构建期间发生错误?

Xcode 13 错误:输入文件 [...] 在构建期间被修改