Analyse de code à l'aide des analyseurs .NET compiler platform (Roslyn)
Les analyseurs .NET compiler platform (Roslyn) inspectent le style, la qualité, la facilité de gestion, la conception et d'autres problèmes de votre code C# ou Visual Basic. Cette inspection ou analyse se produit au moment du design dans tous les fichiers ouverts.
Les analyseurs sont répartis dans les groupes suivants :
-
Ces analyseurs sont intégrés à Visual Studio. L’ID de diagnostic de l’analyseur, ou le format de code, est IDExxxx, par exemple IDE0001. Vous pouvez configurer les préférences dans la page d’options de l’éditeur de texte ou dans un fichier EditorConfig. À compter de .NET 5.0, les analyseurs du style de code sont inclus dans le Kit SDK .NET et peuvent être strictement appliqués en tant qu’avertissements ou erreurs de build. Pour plus d’informations, consultez Vue d’ensemble de l’analyse du code source .NET.
Analyseurs de la qualité du code
Ces analyseurs sont inclus dans le Kit de développement logiciel (SDK) .NET 5.0 et ultérieur et sont activés par défaut. L’ID de diagnostic de l’analyseur, ou le format de code, est CAxxxx, par exemple CA1822. Pour plus d’informations, consultez Vue d’ensemble de l’analyse de la qualité du code .NET.
Analyseurs externes
Des exemples d'analyseurs externes sont StyleCop, Roslynator, xUnit Analyzers et Sonar Analyzer. Vous pouvez installer ces analyseurs supplémentaires sous la forme d'un package NuGet ou d'une extension Visual Studio.
Niveaux de gravité des analyseurs
Chaque règle d'analyseur Roslyn, ou diagnostic, a une gravité et un état de suppression par défaut que vous pouvez personnaliser pour votre projet.
Les niveaux de gravité sont : Erreur, Avertissement, Suggestion, Silencieux, None et Default. Pour plus d'informations et de comportement, consultez Configurer les niveaux de gravité.
Violations de règle
Si un analyseur détecte des violations de règle d'analyseur, il les signale dans la fenêtre Liste d'erreurs et dans l'éditeur de code.
La capture d'écran suivante montre les violations de règle signalées dans la fenêtre Liste d'erreurs. Les violations détectées par l'analyseur, et qui sont signalées dans la liste d'erreurs, correspondent au paramètre de niveau de gravité de la règle :
Les violations des règles de l'analyseur apparaissent également dans l'éditeur de code sous la forme de lignes gribouillées sous le code incriminé. Par exemple, la capture d'écran suivante montre trois violations : une erreur (ligne rouge), un avertissement (ligne verte) et une suggestion (trois points gris) :
Correctifs de code
De nombreux diagnostics sont associées à un ou plusieurs correctifs de code que vous pouvez appliquer pour corriger la violation de règle. Les correctifs de code sont affichés dans l’icône du menu Ampoule, avec d’autres types d’Actions rapides. Pour plus d'informations sur les correctifs de code, consultez Actions rapides courantes.
Configurer les niveaux de gravité de l’analyseur
Vous pouvez configurer la gravité des règles de l'analyseur dans un fichier EditorConfig ou à partir du menu Ampoule.
Les analyseurs peuvent également être configurés pour inspecter le code au moment de la génération et en cours de frappe. Vous pouvez configurer l’étendue de l’analyse du code en direct pour qu’elle s’exécute uniquement sur le document actif, sur tous les documents ouverts ou sur l’ensemble de la solution. Pour plus d'informations, consultez Configurer l'analyse de code en direct pour .NET.
Conseil
Les erreurs et les avertissements au moment de la génération provenant des analyseurs de code sont affichés uniquement si les analyseurs sont installés comme un package NuGet. Les analyseurs intégrés (par exemple, IDE0067 et IDE0068) ne s’exécutent jamais pendant la génération.
Installer des analyseurs de code externe
Visual Studio inclut un ensemble principal d'analyseurs Roslyn, qui sont toujours actifs. Si vous avez besoin de plus d'analyseurs de code, vous pouvez installer des analyseurs externes pour chaque projet via un package NuGet. Certains sont également disponibles en tant qu'extension Visual Studio .vsix, auquel cas ils s'appliquent à n'importe quelle solution que vous ouvrez dans Visual Studio. Pour plus d'informations sur l'installation de ces deux types d'analyseurs différents, consultez Installer des analyseurs de code.
Étendue
Si vous installez un analyseur en tant que package NuGet, la méthode préférée, il ne s'applique qu'au projet où le package NuGet est installé. Dans le cas contraire, si vous installez un analyseur en tant qu'extension de Visual Studio, il s'applique au niveau de la solution et à toutes les instances de Visual Studio. Dans les environnements d'équipe, un analyseur que vous installez en tant que package NuGet est accessible à tous les développeurs qui travaillent sur ce projet.
Remarque
Les analyseurs d'origine sont livrés avec le Kit de développement logiciel (SDK) .NET. Il est préférable d’activer ces analyseurs à partir du Kit de développement logiciel (SDK) .NET au lieu de les installer en tant que Microsoft.CodeAnalysis.NetAnalyzers
package NuGet. En activant les analyseurs à partir du Kit SDK .NET, vous avez la certitude d'obtenir automatiquement les correctifs de bogue des analyseurs et les nouveaux analyseurs dès que vous mettez à jour le Kit de développement logiciel (SDK). Pour plus d'informations sur les analyseurs, consultez Activer ou installer des analyseurs .NET internes.
Erreurs de build
Pour appliquer les règles au moment de la compilation, à l'aide d'une ligne de commande ou d'une intégration continue (CI), choisissez l'une des options suivantes :
Créez un projet .NET 5.0 ou version ultérieure, qui active l'analyse de code par défaut. Pour activer l'analyse de code sur des projets qui ciblent des versions .NET antérieures, définissez la propriété EnableNETAnalyzers sur
true
.Installez des analyseurs en tant que package NuGet. Si vous installez les analyseurs en tant qu'extension de Visual Studio, les avertissements et les erreurs des analyseurs n'apparaissent pas dans le rapport de génération.
La capture d’écran suivante montre la sortie de la génération en ligne de commande à partir de la génération d’un projet qui contient une violation de règle d’analyseur :
Gravité des règles
Si vous souhaitez configurer la gravité de règle de l'analyseur, vous devez installer l'analyseur en tant que package NuGet. Vous ne pouvez pas configurer la gravité des règles à partir des analyseurs qui ont été installés comme une extension Visual Studio.