8

Visual Studio のプロジェクト設定で、「警告をエラーとして扱う」を「すべて」に設定しました。警告レベルは 4 に設定されています。CA1305 に違反するコードを意図的に導入してこれをテストしましたが、正常にビルド (および再構築) され、警告が返されます。私が予想していたのは、ビルドが失敗し、エラーが返されることでした。私の理解は間違っていますか?

4

2 に答える 2

13

コード分​​析では、別のメカニズムを使用して警告をエラーとして扱います。コード分​​析の警告をそのように処理するには、ソリューションに新しいコード分析ルールセットを追加します。これを行うには、ソリューションを右クリックして、[新しいアイテムを追加...]を選択します。「ルールセット」を検索し、新しい「コード分析ルールセット」を追加することを選択します。好きな名前を付けてください。

新しいルールセットを追加する

ルールセットエディタで、プロジェクトに含めるルールを選択し、それらをエラーに設定します。エラーとして処理するルールと警告として処理するルールを選択できます。

ルールを選択してエラーに設定

コード分​​析ルールセットのプロパティウィンドウでルールセットの名前を設定し、保存します。次に、Analyze->Configure Code Analysis for Solutionメニュー項目を開きます。

名前を設定してソリューションに適用する

プロジェクトの「エラーとして」ルールセットを選択して適用します。

エラールールセットとして選択して適用

于 2013-01-16T23:43:54.610 に答える
9

ここで説明されているように、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 警告に対して同じ効果を持つ と組み合わせて使用​​できます。

于 2015-08-20T15:51:22.183 に答える