web-dev-qa-db-fra.com

Comment traiter TOUS les avertissements de référence annulables C # 8 comme des erreurs?

Utilisation de Visual Studio 2019 v16.3.2 avec un projet .NET Core 3.0 défini sur C # 8 et les types de référence nullables activés.

<PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <Nullable>enable</Nullable>
</PropertyGroup>

Si je le configure pour traiter tous les avertissements comme des erreurs:

warnings as errors radio button selected

<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />

Il signale d'autres avertissements comme des erreurs. Par exemple, CS0168 The variable 'x' is declared but never used est signalé comme une erreur. Mais tous les avertissements de référence annulables sont toujours signalés comme des avertissements. Par exemple, CS8600 Converting null literal or possible null value to non-nullable type. est toujours signalé comme un avertissement.

Comment puis-je traiter tous les avertissements de référence annulables comme des erreurs?

Remarque: même si CS8600 est spécifiquement défini pour être traité comme une erreur, il ne sera pas signalé comme une erreur. Si cela fonctionnait, cela ne servirait toujours pas à les traiter tous comme des erreurs, car il y en a tellement.

Modifier: définir des avertissements spécifiques à traiter comme des erreurs place <WarningsAsErrors>CS8600;CS8602;CS8603</WarningsAsErrors> dans le csproj et ne fonctionne pas.

Je suggère d'utiliser la solution this . Il mentionne les 3 erreurs et à mon humble avis une meilleure solution

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <WarningsAsErrors>CS8600;CS8602;CS8603</WarningsAsErrors>
  </PropertyGroup>
</Project>

screen

0
Sergey G.