Supprimer les avertissements du compilateur
Avec Visual Studio, vous pouvez spécifier les avertissements que vous souhaitez supprimer en spécifiant les codes d’avertissement dans le Concepteur de projets (pages de propriétés de projet). Vous pouvez également supprimer des avertissements en définissant certaines propriétés directement dans le fichier projet, via la ligne de commande ou dans le code lorsque vous souhaitez supprimer un avertissement dans un seul emplacement.
Certains compilateurs et outils de génération ont également des options pour spécifier le niveau d’avertissement. Cela vous permet de contrôler les catégories d’avertissements avec un seul paramètre. Pour ces options, consultez la documentation relative au langage et au compilateur spécifiques que vous utilisez :
- Niveaux d’avertissement en C#
- Les niveaux d'avertissement en C++
Si votre objectif est de voir une sortie plus concise et plus ciblée dans votre journal de build, vous pouvez modifier son niveau de détail. Les paramètres disponibles sont normal, détaillé ou diagnostic . Pour plus d’informations sur le niveau de détail, consultez Guide pratique pour visualiser, enregistrer et configurer des fichiers journaux de build.
Attention
Notez que les avertissements sont destinés à être une indication d’un problème potentiel avec votre code. Vous devez donc comprendre les risques de désactivation d’un avertissement particulier. Les paramètres de Visual Studio désactivent les avertissements au niveau du projet. Vous pouvez utiliser une approche plus ciblée pour désactiver les avertissements que Visual Studio fournit. La plupart des compilateurs fournissent des moyens de désactiver les avertissements uniquement pour certaines lignes de code, afin que vous puissiez toujours passer en revue les avertissements s’ils se produisent ailleurs dans le même projet.
Supprimer des avertissements spécifiques pour Visual C# ou F#
Utilisez les propriétés de Build pour supprimer des avertissements spécifiques pour l’ensemble d’un projet C# et F#. Si vous souhaitez supprimer un avertissement uniquement dans une partie spécifique du code en C#, utilisez #pragma warning. Pour F#, utilisez #nowarn directive de préprocesseur pour désactiver un avertissement pour un fichier source entier.
Dans Explorateur de solutions, choisissez le projet dans lequel vous souhaitez supprimer les avertissements.
Cliquez avec le bouton droit sur le nœud du projet, puis choisissez Propriétés dans le menu contextuel. Vous pouvez également sélectionner le nœud du projet, puis appuyer sur Alt+Entrée.
Choisissez build, puis accédez à la sous-section Erreurs et avertissements.
Dans la zone Supprimer les avertissements ou Supprimer des avertissements spécifiques zone, spécifiez les codes d’erreur des avertissements que vous souhaitez supprimer, séparés par des points-virgules. Pour obtenir une liste et des descriptions des codes d’avertissement, consultez messages du compilateur C#.
Reconstruire la solution.
Dans Explorateur de solutions, choisissez le projet dans lequel vous souhaitez supprimer les avertissements.
Cliquez avec le bouton droit sur le nœud du projet, puis choisissez Propriétés dans le menu contextuel. Vous pouvez également sélectionner le nœud du projet, puis appuyer sur Alt+Entrée.
Choisissez la page ou la section Build et, si vous êtes dans l’interface utilisateur actuelle, ouvrez la sous-section Erreurs et avertissements.
Dans la zone Supprimer les avertissements ou Supprimer des avertissements spécifiques zone, spécifiez les codes d’erreur des avertissements que vous souhaitez supprimer, séparés par des points-virgules. Pour obtenir une liste et des descriptions des codes d’avertissement, consultez messages du compilateur C#.
Reconstruire la solution.
Remarque
Certains avertissements ne peuvent pas être supprimés. Pour en obtenir la liste, consultez Option du compilateur NoWarn.
Supprimer des avertissements spécifiques pour C++
Vous pouvez supprimer des avertissements dans un projet C++ à l’aide des propriétés du projet ; vous utilisez les propriétés de configuration page de propriétés pour supprimer des avertissements spécifiques pour l’ensemble d’un projet C++. Vous pouvez également supprimer des avertissements dans des fichiers spécifiques à l’aide de #pragma warning
. Cet article traite du contrôle au niveau du projet, mais si votre intention est de désactiver un avertissement dans un fichier particulier ou juste autour de quelques lignes de code, mais que vous souhaitez continuer à voir d’autres occurrences du même avertissement, vous devez envisager d’utiliser #pragma warning
. Consultez Avertissement #pragma.
Dans Explorateur de solutions, choisissez le projet ou le fichier source dans lequel vous souhaitez supprimer les avertissements.
Dans la barre de menus, choisissez Afficher>Pages de propriétés.
Choisissez la catégorie Propriétés de configuration, choisissez la catégorie C/C++, puis la page Avancé.
Effectuez l’une des étapes suivantes :
Dans la zone Désactiver des avertissements spécifiques, spécifiez les codes d’erreur des avertissements que vous souhaitez supprimer, séparés par un point-virgule.
Dans la zone Désactiver des avertissements spécifiques, choisissez Modifier pour afficher d’autres options.
Choisissez le bouton OK, puis régénérez la solution.
Si l’avertissement provient d’un autre outil, reportez-vous à la documentation de l’outil spécifique pour savoir comment supprimer les avertissements de cet outil. Par exemple, l’éditeur de liens C++ contient certains avertissements que vous pouvez désactiver à l’aide de l’option éditeur de liens /IGNORE
. Consultez /IGNORE (Ignorer les avertissements spécifiques) et pour définir cette option, consultez /link (Passer les options à l’éditeur de liens).
Supprimer les avertissements pour Visual Basic
Vous pouvez masquer des avertissements de compilateur spécifiques pour Visual Basic en modifiant le fichier .vbproj
du projet. Pour supprimer les avertissements par catégorie , vous pouvez utiliser la page de propriétés de compilation . Si vous souhaitez désactiver un avertissement dans une partie spécifique d’un fichier de code, utilisez des directives #Disable et #Enable. Pour plus d’informations, consultez Configurer des avertissements dans Visual Basic.
Pour supprimer des avertissements spécifiques pour un projet Visual Basic entier
Cet exemple montre comment modifier le fichier .vbproj
pour supprimer des avertissements spécifiques du compilateur.
Dans Explorateur de solutions, choisissez le projet dans lequel vous souhaitez supprimer les avertissements.
Dans la barre de menus, choisissez Projet>Décharger Projet.
Dans l’Explorateur de solutions, ouvrez le menu contextuel du projet en cliquant avec le bouton droit, puis choisissez Modifier<nom_projet>.vbproj.
Le fichier projet XML s’ouvre dans l’éditeur de code.
Recherchez l’élément
<NoWarn>
pour la configuration de build avec laquelle vous travaillez, et ajoutez un ou plusieurs numéros d’avertissement comme valeur de l’élément<NoWarn>
. Si vous spécifiez plusieurs numéros d’avertissement, séparez-les par une virgule.L’exemple suivant montre l’élément
<NoWarn>
pour la configuration de build Debug sur une plateforme x86, avec deux avertissements du compilateur supprimés :<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>
Remarque
Les projets .NET Core ne contiennent pas de groupes de propriétés de configuration de build par défaut. Pour supprimer les avertissements dans un projet .NET Core, ajoutez la section configuration de build au fichier manuellement. Par exemple:
<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>
Enregistrez les modifications apportées au fichier
.vbproj
.Dans la barre de menus, choisissez Projet>Recharger le projet.
Dans la barre de menus, sélectionnez Générer>Régénérer la solution.
La fenêtre Sortie n’affiche plus les avertissements que vous avez spécifiés.
Pour plus d’informations, consultez l’option du compilateur /nowarn pour le compilateur de ligne de commande Visual Basic.
Vous pouvez supprimer des avertissements pour des avertissements individuels ou par catégorie. L’expérience diffère selon que vous travaillez avec un projet .NET Framework ou un projet .NET Core (ou .NET 5 et ultérieur).
Si vous souhaitez désactiver un avertissement dans une partie spécifique d’un fichier de code, utilisez des directives #Disable et #Enable. Pour plus d’informations, consultez Configurer des avertissements dans Visual Basic.
Projets .NET 5 ou ultérieur
Vous pouvez modifier le fichier projet pour supprimer des avertissements de compilateur spécifiques par les codes de diagnostic, ou supprimer des avertissements par catégorie à l’aide du Concepteur de projets. Pour ouvrir le concepteur de projets, sélectionnez le nœud du projet, cliquez avec le bouton droit, puis choisissez Propriétés, ou appuyez sur Alt+Entrée.
Dans la section Compiler, choisissez Avertissements. Sous Gravité de l’avertissement, vous pouvez choisir Définir individuellement les gravités d’avertissement. Les catégories sont affichées et vous avez la possibilité de définir chaque catégorie sur Aucun pour désactiver la catégorie d’avertissement, ou de la définir sur Avertissement ou Erreur pour l’activer en tant qu’avertissement ou erreur.
Projets .NET Framework
Vous pouvez masquer des avertissements de compilateur spécifiques pour Visual Basic en modifiant le fichier .vbproj
du projet. Pour supprimer des avertissements par catégorie, vous pouvez utiliser la page de propriétés de la compilation.
Pour supprimer des avertissements spécifiques pour un projet Visual Basic entier
Cet exemple montre comment modifier le fichier .vbproj
pour supprimer des avertissements spécifiques du compilateur.
Dans Explorateur de solutions, choisissez le projet dans lequel vous souhaitez supprimer les avertissements.
(.NET) Double-cliquez sur le nœud du projet pour ouvrir le fichier projet.
(.NET Framework) Dans la barre de menus, choisissez Project>Unload Project. Ensuite, dans l’Explorateur de solutions, ouvrez le menu contextuel du projet en cliquant avec le bouton droit, puis choisissez Modifier <nom_projet>.vbproj.
Le fichier projet MSBuild s’ouvre dans l’éditeur de code. Il s’agit d’un fichier XML.
Recherchez l’élément
<NoWarn>
pour la configuration de build que vous utilisez, puis ajoutez un ou plusieurs numéros d’avertissements comme valeur de l’élément<NoWarn>
. Si vous spécifiez plusieurs numéros d’avertissement, séparez-les par une virgule.L’exemple suivant montre l’élément
<NoWarn>
pour la configuration de build Debug sur une plateforme x86, avec deux avertissements du compilateur supprimés :<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>
Remarque
Les projets .NET Core et .NET 5 et versions ultérieures ne contiennent pas de groupes de propriétés de configuration de build par défaut. Pour supprimer les avertissements dans un projet .NET Core, ajoutez la section configuration de build au fichier manuellement. Par exemple:
<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>
Enregistrez les modifications apportées au fichier
.vbproj
.Dans la barre de menus, choisissez Projet>Recharger le projet.
Dans la barre de menus, sélectionnez Générer>Régénérer la solution.
La fenêtre Sortie n’affiche plus les avertissements que vous avez spécifiés.
Pour plus d’informations, consultez l’option du compilateur /nowarn pour le compilateur de ligne de commande Visual Basic.
Supprimer un avertissement en modifiant le fichier projet
L’utilisation du concepteur de propriétés Visual Studio pour supprimer les avertissements entraîne une modification du fichier projet. Parfois, il peut être plus pratique de modifier manuellement le fichier projet pour accomplir la tâche de désactivation d’un avertissement. Le fichier projet est traité par msBuild, le moteur de build de Microsoft. Consultez MSBuild.
En outre, dans Visual Studio 2019 version 16.7 et antérieures, certains avertissements provenant d’outils autres que le compilateur ne peuvent pas être supprimés d’une autre manière.
Pour ouvrir le fichier projet dans l’éditeur Visual Studio, cliquez avec le bouton droit sur le nœud du projet, puis choisissez Modifier le fichier projet. Certains types de projet vous obligent à décharger le projet avant de pouvoir modifier le fichier projet. Si vous devez décharger le projet, cliquez avec le bouton droit sur le nœud du projet et choisissez décharger le projet.
Dans une nouvelle section
PropertyGroup
, utilisez la propriétéNoWarn
. Répertoriez les erreurs que vous souhaitez supprimer, séparées par des virgules ou des points-virgules. Pour les avertissements du compilateur, vous pouvez omettre le code de langue et entrer uniquement le nombre, mais pour plus de clarté, nous vous recommandons d’utiliser le code complet. Pour les avertissements d’autres outils de la build, spécifiez le code complet, y compris le préfixe (par exemple,MSB
pour les avertissements émis par MSBuild lui-même).Le code suivant ajoute des avertissements CS0028 et CS0618 à la liste des avertissements supprimés :
<PropertyGroup> // Other properties <NoWarn>$(NoWarn);CS0028;CS0618</NoWarn> </PropertyGroup>
Le référencement de la valeur précédente de
$(NoWarn)
, comme indiqué dans l’exemple précédent, ajoute ces nombres à n’importe quelle valeur définie précédemment pourNoWarn
, au lieu de la remplacer.
Consultez NoWarn.
Supprimer un avertissement de la ligne de commande build
Si vous créez un projet à partir de la ligne de commande, vous pouvez également supprimer des avertissements à l’aide de -warnAsMessage
sur la ligne de commande MSBuild. Utilisez des guillemets autour des listes de plusieurs codes d’avertissement.
MSBuild.exe -warnAsMessage="CS0028;CS0618" MyProject.csproj
Consultez Informations de référence sur la ligne de commande MSBuild.
Supprimer les avertissements pour tous les projets et solutions dans une structure de répertoires
Vous pouvez supprimer des avertissements pour de nombreux projets en même temps s’ils se trouvent tous sous un répertoire commun dans le système de fichiers à l’aide du fichier MSBuild Directory.Build.props. Consultez Personnaliser les builds par répertoire. Par exemple, si vous placez le fichier Directory.Build.props suivant à la racine d’un dossier avec de nombreuses solutions et projets, vous pouvez supprimer une liste spécifiée d’avertissements pour tous les projets de ce dossier et récursivement dans les dossiers qu’il contient.
<Project>
<PropertyGroup>
<NoWarn>$(NoWarn);CS0028;CS0618</NoWarn>
</PropertyGroup>
</Project>
Supprimer les avertissements de l’outil
La façon dont vous supprimez les avertissements des outils autres que le compilateur, tels que MSBuild, dépend du type de projet que vous avez et de la version de MSBuild que vous utilisez.
Avec MSBuild 16.8 et versions ultérieures, dans les projets qui utilisent un Kit de développement logiciel (SDK) ou les importations standard, vous pouvez supprimer les avertissements des outils à l’aide des mêmes méthodes décrites précédemment. Vous devez spécifier le code d'erreur complet (y compris le préfixe comme MSB
pour MSBuild), et non pas seulement un nombre que vous pouvez utiliser avec un avertissement du compilateur. En outre, le message n’est pas éliminé ; il s’affiche toujours comme un message d’information, mais il a été rétrogradé d’un avertissement.
Avec MSBuild 16.7 et versions antérieures, et dans n’importe quel projet qui n’utilise pas de KIT de développement logiciel (SDK) ou les importations standard, ces avertissements ne sont pas supprimés à l’aide de NoWarn
. Dans ce cas, la propriété que vous pouvez utiliser pour supprimer les avertissements de l’outil est MSBuildWarningsAsMessages
. Vous pouvez supprimer les avertissements de build en modifiant le fichier projet ou en spécifiant l’option MSBuildWarningsAsMessages
sur la ligne de commande MSBuild. Lorsque vous utilisez MSBuildWarningsAsMessages
, utilisez le code d’erreur MSBuild complet, y compris le préfixe MSB
.
<PropertyGroup>
<MSBuildWarningsAsMessages>$(MSBuildWarningsAsMessages);MSB3270</MSBuildWarningsAsMessages>
</PropertyGroup>
Notez que certains avertissements MSBuild ne peuvent pas être supprimés en définissant MSBuildWarningsAsMessages
. Pour les désactiver, utilisez l’option de ligne de commande warnAsMessage
.
En outre, certains avertissements ont des propriétés spécifiques que vous pouvez définir pour désactiver l’avertissement. Par exemple, MSB3253
est désactivée en définissant la propriété :
<PropertyGroup>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
None
</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
</PropertyGroup>
Dans la mesure du possible, utilisez la propriété plus explicite, car un code d’erreur lui-même n’est pas aussi facilement compris. La page de référence d’erreur du code contient généralement la propriété utilisée pour la désactiver.
Supprimer les avertissements pour les packages NuGet
Dans certains cas, vous pouvez supprimer les avertissements du compilateur NuGet pour un seul package NuGet, au lieu d’un projet entier. L’avertissement sert d’objectif. Vous ne souhaitez donc pas le supprimer au niveau du projet. Par exemple, l’un des avertissements NuGet vous indique que le package peut ne pas être entièrement compatible avec votre projet. Si vous supprimez-le au niveau du projet et ajoutez ultérieurement un package NuGet supplémentaire, vous ne savez jamais s’il produisait l’avertissement de compatibilité.
Pour supprimer un avertissement spécifique pour un seul package NuGet
Dans Explorateur de solutions, sélectionnez le package NuGet pour lequel vous souhaitez supprimer les avertissements du compilateur.
Dans le menu contextuel, sélectionnez Propriétés.
Dans la zone Supprimer les avertissements des propriétés du package, entrez le numéro d’avertissement que vous souhaitez supprimer pour ce package. Si vous souhaitez supprimer plusieurs avertissements, utilisez une virgule pour séparer les numéros d’avertissement.
Capture d’écran
L'avertissement disparaît de l'Explorateur de solutions et de la liste d'erreurs . Dans le fichier projet, la propriété NoWarn est définie.
<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>
Supprimer les avertissements d’analyse du code
Les messages de diagnostic avec des codes commençant par CA
sont des violations et des avertissements d’analyse du code, qui sont distincts des avertissements du compilateur décrits dans cet article. Vous pouvez supprimer les avertissements d’analyse du code de différentes manières, notamment à l’aide de balises spécifiques au site et à l’échelle du projet ou globalement, à l’aide de fichiers de configuration de règles. Consultez Supprimer les avertissements de Code Analysis et Supprimer les violations de Code Analysis.
Contenu connexe
- procédure pas à pas : Créer une application
- Guide pratique pour visualiser, enregistrer et configurer des fichiers journaux de build
- Compiler et générer
- Code Analysis
- options du compilateur C# pour signaler des erreurs et des avertissements
- Configuration des avertissements dans Visual Basic
- erreurs et avertissements du compilateur C++