方法: コンパイラ警告の非表示

適用対象:yesVisual Studio noVisual Studio for Mac noVisual Studio Code

1 つまたは複数の種類のコンパイラの警告を除外して、ビルド ログをまとめることができます。 たとえば、ビルド ログの詳細さを標準詳細、または診断に設定したときに生成される出力の一部だけを確認できます。 詳細さについて詳しくは、「方法:ビルド ログ ファイルを表示、保存、および構成する」をご覧ください。

Visual C# または F# の特定の警告を非表示にする

C# または F# プロジェクトの特定の警告を非表示にするには、[ビルド] プロパティを使用します。

  1. ソリューション エクスプローラーで、警告を抑制するプロジェクトを選びます。

  2. プロジェクト ノードを右クリックし、コンテキスト メニューの [プロパティ] を選択します。 または、プロジェクト ノードを選択し、Alt+Enter キーを押します。

  3. [ビルド] を選択し、[エラーと警告] サブセクションに移動します。

  4. [警告の表示なし] または [特定の警告を表示しない] ボックスで、表示しない警告のエラー コードをセミコロンで区切って指定します。 警告コードの一覧と説明については、C# コンパイラのメッセージに関する記事を参照してください。

  5. ソリューションをリビルドします。

  1. ソリューション エクスプローラーで、警告を抑制するプロジェクトを選びます。

  2. プロジェクト ノードを右クリックし、コンテキスト メニューの [プロパティ] を選択します。 または、プロジェクト ノードを選択し、Alt+Enter キーを押します。

  3. [ビルド] ページまたはセクションを選択し、現在の UI を使用している場合は、[エラーと警告] サブセクションを開きます。

  4. [警告の表示なし] または [特定の警告を表示しない] ボックスで、表示しない警告のエラー コードをセミコロンで区切って指定します。 警告コードの一覧と説明については、C# コンパイラのメッセージに関する記事を参照してください。

  5. ソリューションをリビルドします。

Note

一部の警告は抑制できません。 それらの一覧については、NoWarn コンパイラ オプションに関する記事を参照してください。

C++ の特定の警告を非表示にする

C++ プロジェクトの特定の警告を非表示にするには、 [構成プロパティ] プロパティ ページを使用します。

  1. ソリューション エクスプローラーで、警告を抑制するプロジェクトまたはソース ファイルを選びます。

  2. メニュー バーで [表示]>[プロパティ ページ] の順に選びます。

  3. [構成プロパティ] カテゴリを選び、 [C/C++] カテゴリを選んだ後、 [詳細設定] ページを選びます。

  4. 次のいずれかの操作を実行します。

    • [指定の警告を無効にする] ボックスで表示しない警告のエラー コードをセミコロンで区切って指定します。

    • [指定の警告を無効にする] ボックスで、 [編集] を選んで他のオプションを表示します。

  5. [OK] ボタンを選び、ソリューションをリビルドします。

Visual Basic の警告を非表示にする

プロジェクトの .vbproj ファイルを編集することで、Visual Basic の特定のコンパイラの警告を非表示にできます。 カテゴリで警告を非表示にするには、コンパイル プロパティ ページを使用できます。 詳細については、「Visual Basic での警告の構成」を参照してください。

Visual Basic の特定の警告を抑制するには

この例は、 .vbproj ファイルを編集して特定のコンパイラの警告を非表示にする方法を示しています。

  1. ソリューション エクスプローラーで、警告を抑制するプロジェクトを選びます。

  2. メニュー バーから、 [プロジェクト]>[プロジェクトのアンロード] の順に選びます。

  3. ソリューション エクスプローラーで、プロジェクトの右クリックまたはショートカット メニューを開き、[<プロジェクト名>.vbproj の編集] を選びます。

    コード エディターに XML プロジェクト ファイルが開きます。

  4. ビルドに使用するビルド構成の <NoWarn> 要素を見つけ、<NoWarn> 要素の値として 1 つまたは複数の警告番号を追加します。 複数の警告番号を指定する場合は、コンマで区切ります。

    次の例では、2 つのコンパイラの警告が非表示にされた、x86 プラットフォームでのデバッグ ビルド構成の <NoWarn> 要素を太字で示してあります。

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
        <PlatformTarget>x86</PlatformTarget>
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>false</Optimize>
        <OutputPath>bin\Debug\</OutputPath>
        <DefineDebug>true</DefineDebug>
        <DefineTrace>true</DefineTrace>
        <ErrorReport>prompt</ErrorReport>
        <NoWarn>40059,42024</NoWarn>
        <WarningLevel>1</WarningLevel>
      </PropertyGroup>
    

    注意

    既定では、.NET Core プロジェクトにはビルド構成プロパティ グループは含まれません。 .NET Core プロジェクトで警告を非表示にするには、手動でビルド構成セクションをファイルに追加します。 次に例を示します。

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp2.0</TargetFramework>
        <RootNamespace>VBDotNetCore_1</RootNamespace>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        <NoWarn>42016,41999,42017</NoWarn>
      </PropertyGroup>
    </Project>
    
  5. 変更を .vbproj ファイルに保存します。

  6. メニュー バーから、 [プロジェクト]>[プロジェクトの再読み込み] の順に選びます。

  7. メニュー バーから、 [ビルド]>[ソリューションのリビルド] の順に選びます。

    指定した警告が、 [出力] ウィンドウに表示されなくなります。

詳細については、Visual Basic のコマンド ライン コンパイラの /nowarn コンパイラ オプションを参照してください。

NuGet パッケージの警告を非表示にする

場合によっては、プロジェクト全体ではなく、1 つの NuGet パッケージに対して NuGet コンパイラの警告を非表示にしたい場合があります。 警告は役に立つため、プロジェクト レベルで非表示にしたくない場合があります。 たとえば、NuGet 警告のうちの 1 つは、パッケージがプロジェクトと完全に互換性がない可能性を示します。 これをプロジェクト レベルで非表示にし、後で追加の NuGet パッケージを追加すると、互換性に関する警告が生成されたかどうかがわからなくなります。

1 つの NuGet パッケージに対して特定の警告を非表示にするには

  1. ソリューション エクスプローラーで、コンパイラの警告を非表示にする NuGet パッケージを選択します。

    Screenshot of NuGet package in Solution Explorer.

    Screenshot of NuGet package in Solution Explorer.

  2. 右クリックまたはコンテキスト メニューから、 [プロパティ] を選択します。

  3. パッケージのプロパティの [警告の表示なし] ボックスで、このパッケージに対して非表示にする警告番号を入力します。 複数の警告を非表示にする場合は、コンマを使用して警告番号を区切ります。

    NuGet package properties

    Screenshot of NuGet package properties

    ソリューション エクスプローラーエラー一覧から警告が消えます。 プロジェクト ファイルでは、NoWarn プロパティが設定されます。

     <PackageReference Include="NuGet.Build.Tasks.Pack" Version="6.2.0">
       <PrivateAssets>all</PrivateAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
       <NoWarn>NU5104</NoWarn>
     </PackageReference>
    

関連項目