C# 在构建过程中检查razor错误

C# 在构建过程中检查razor错误,c#,visual-studio,razor,C#,Visual Studio,Razor,VisualStudio(我使用的是2010)有没有一种方法可以在构建过程中发现razor视图中的错误,就像C#项目中的其他代码一样 您可以检查代码中的任何错误并认为一切正常,这只是一种痛苦,但似乎您无法确定视图,除非您逐一检查 顺便说一句,我显然不会在我的视图中编码——我只是在谈论HTML或URL扩展方法。尝试在项目文件中将MVCBuildViews设置为true(即编辑csproj文件) true 构建视图需要一段时间,而额外的10秒以上的调试构建可能会让人恼火,因此我通常只在发布类型的构建

VisualStudio(我使用的是2010)有没有一种方法可以在构建过程中发现razor视图中的错误,就像C#项目中的其他代码一样

您可以检查代码中的任何错误并认为一切正常,这只是一种痛苦,但似乎您无法确定视图,除非您逐一检查


顺便说一句,我显然不会在我的视图中编码——我只是在谈论HTML或URL扩展方法。

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

true

构建视图需要一段时间,而额外的10秒以上的调试构建可能会让人恼火,因此我通常只在发布类型的构建配置中将MVCBuildView设置为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>

调试
任意CPU
...
v4.6.1
假的
假的
...
...
促使
真的
4.
...

顶部PropertyGroup中的MvcBuildViews元素是由VS在项目创建时添加的,生成配置特定的元素(底部PropertyGroup)是我手动添加的,请尝试以加载项模式编辑以下程序集:System.core,根据代码:

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

有时这个汇编器没有正确加载,在我的情况下,它工作了

我认为这将完全一样的工作:可能的副本给了威尔+1首先进入那里-感谢澄清了快速参考的解决方案。标记为答案。@beardtwizzle:你也可以+JP。这是MVC(我相信2)的一个新功能,我完全忘记了(而且肯定是更好的答案)。@Will sorry yes+to JP worth:)旧而金。这节省了我的时间。奇怪的是,这在现有的房地产集团中不起作用。只有当我为它创建了一个特定的属性组时,它才起作用,也就是说,
true
我无法使它起作用-标签不在那里,我必须手动添加它们(如果相关的话)。我的视图有许多错误,并且生成在两种配置中都没有捕获它们。我与@niico有相同的问题,但发现是PropertyGroup条件与我的生成配置和平台不匹配(条件anyCPU,生成x86)。
...
<Reference Include="System.Core, Version=4.0.0.0" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
...