在我的项目在Visual Studio中的设置,我已“警告视为错误”为“全部”。 警告电平被设置为4。我通过故意引入违反CA1305代码测试这一点,但它建立(和重建)在成功,返回一个警告。 我希望的是,构建会失败,并会返回一个错误。 我的理解是错误的?
Answer 1:
代码分析使用不同的机制来警告视为错误。 有作这样的处理代码分析警告,添加一个新的代码分析规则集到您的解决方案。 要做到这一点,右击你的解决方案,并选择“添加新项...”。 搜索“规则集”,然后选择添加新的“代码分析规则集”。 给它任何你想要的名称。
在规则集编辑器中,选择要在项目中包含的规则,并将其设为错误。 您可以选择哪些规则当作错误和警告。
在代码分析规则集的属性窗口中设置的规则集的名称和保存 。 然后打开Analyze->Configure Code Analysis for Solution
的菜单项。
选择你的“作为错误”规则集为您的项目和应用。
Answer 2:
你可以在这里一样。贵的csproj文件使用“CodeAnalysisTreatWarningsAsErrors”属性:
http://blogs.msdn.com/b/codeanalysis/archive/2007/08/08/_24002800_codeanalysistreatwarningaserrors_2900_-msbuild-property.aspx
对于Visual Studio 2008中,我们增加了一个新的MSBuild属性,让您轻松处理所有代码分析警告视为构建错误。 这可能是有用的,例如,如果要强制一个代码分析的任何触发规则,而不需要单独设置此为每条规则每晚团队建设过程中打破建设。
要使用,只需将其属性添加到您的项目文件(或一个共同的目标文件),并设置为true:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
[...]
<!-- either here -->
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
[...]
<!-- or here ... -->
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
[...]
<!-- and here -->
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
[...]
</Project>
这可以通过使用结合<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
这将对警告StyleCop的相同的效果。
文章来源: Treat Warnings as Errors has no effect