Vue d’ensemble des analyseurs de .NET Compiler PlatformOverview of .NET Compiler Platform analyzers

Visual Studio 2017 inclut un ensemble intégré d’analyseurs .NET Compiler Platform qui analysent votre code c# ou Visual Basic en cours de frappe.Visual Studio 2017 includes a built-in set of .NET Compiler Platform analyzers that analyze your C# or Visual Basic code as you type. Vous pouvez installer des analyseurs supplémentaires comme une extension Visual Studio, ou sur une base par projet sous forme de package NuGet.You can install additional analyzers as a Visual Studio extension, or on a per-project basis as a NuGet package. Analyseurs recherchent au style de code, la qualité du code et la facilité de maintenance, conception de code et d’autres problèmes.Analyzers look at code style, code quality and maintainability, code design, and other issues.

Si des violations de règle sont trouvées par un analyseur, elles sont signalées à la fois dans l’éditeur de code comme un ondulée sous le code incriminé, puis, dans le liste d’erreurs.If rule violations are found by an analyzer, they are reported both in the code editor as a squiggly under the offending code, and in the Error List.

Analyseur de nombreuses règles ou diagnostics, un ou plusieurs associés corrections de code que vous pouvez appliquer pour corriger le problème.Many analyzer rules, or diagnostics, have one or more associated code fixes that you can apply to correct the problem. Analyseur de diagnostics qui sont intégrées à Visual Studio ont un correctif de code associé.The analyzer diagnostics that are built into Visual Studio each have an associated code fix. Correctifs de code sont affichés dans le menu de l’icône ampoule, ainsi que d’autres types de Actions rapides.Code fixes are shown in the light bulb icon menu, along with other types of Quick Actions. Pour plus d’informations sur ces correctifs de code, consultez Actions rapides courantes.For information about these code fixes, see Common Quick Actions.

Violation de l’analyseur et correctif de code d’Action rapide

Analyseurs de Roslyn et l’analyse statique du codeRoslyn analyzers vs. static code analysis

Les analyseurs .NET compiler Platform (« Roslyn ») va remplacer analyse statique du code pour le code managé..NET Compiler Platform ("Roslyn") analyzers will eventually replace static code analysis for managed code. Grand nombre de règles d’analyse du code statique ont déjà été réécrites comme diagnostics d’analyseur Roslyn.Many of the static code analysis rules have already been rewritten as Roslyn analyzer diagnostics.

Comme les violations de règle d’analyse statique du code, les violations d’analyseur Roslyn s’affichent dans le liste d’erreurs.Like static code analysis rule violations, Roslyn analyzer violations appear in the Error List. En outre, les violations d’analyseur Roslyn apparaissent également dans l’éditeur de code en tant que tildes sous le code douteux.In addition, Roslyn analyzer violations also show up in the code editor as squigglies under the offending code. La couleur de la ligne ondulée varie selon le paramètre de gravité de la règle.The color of the squiggly depends on the severity setting of the rule. La capture d’écran suivante montre trois violations—un rouge, un vert et un gris :The following screenshot shows three violations—one red, one green, and one gray:

Tildes dans l’éditeur de code

Analyseurs de Roslyn analyser le code au moment de la génération, comme l’analyse statique du code si elle est activée, mais également live en cours de frappe !Roslyn analyzers analyze code at build time, like static code analysis if it's enabled, but also live as you type! Analyseurs de Roslyn peuvent également fournir d’analyse au moment du design des fichiers de code qui ne sont pas ouverts dans l’éditeur si vous activez complète d’analyse de la solution.Roslyn analyzers can also provide design-time analysis of code files that aren't open in the editor if you enable full solution analysis.

Note

Erreurs de génération et avertissements des analyseurs de Roslyn sont affichent uniquement si les analyseurs sont installés sous forme de package NuGet.Build-time errors and warnings from Roslyn analyzers are shown only if the analyzers are installed as a NuGet package.

Non seulement les analyseurs de Roslyn signalent les mêmes types de problèmes qui effectue l’analyse du code statique, mais ils facilitent pour vous permettre de résoudre une ou toutes, les occurrences de la violation ou de votre fichier projet.Not only do Roslyn analyzers report the same types of problems that static code analysis does, but they make it easy for you to fix one, or all, occurrences of the violation in your file or project. Ces actions sont appelées corrections de code.These actions are called code fixes. Correctifs de code sont spécifiques à l’IDE ; dans Visual Studio, ils sont implémentés en tant que Actions rapides.Code fixes are IDE-specific; in Visual Studio, they are implemented as Quick Actions. Pas tous les diagnostics d’analyzer ont un correctif de code associé.Not all analyzer diagnostics have an associated code fix.

Note

L’option de menu analyser > exécuter l’analyse du Code s’applique à l’analyse du code uniquement comme étant statique.The menu option Analyze > Run Code Analysis applies only to static code analysis. En outre, sur un projet analyse du Code page de propriétés, la activer l’analyse du Code sur la Build et supprimer les résultats du code généré cases à cocher s’appliquent uniquement aux analyse statique du code.Additionally, on a project's Code Analysis property page, the Enable Code Analysis on Build and Suppress results from generated code checkboxes apply only to static code analysis. Ils n’ont aucun effet sur les analyseurs de Roslyn.They have no effect on Roslyn analyzers.

Faire la distinction entre les violations d’analyseurs de Roslyn et l’analyse statique du code dans le liste d’erreurs, examinez le outil colonne.To differentiate between violations from Roslyn analyzers and static code analysis in the Error List, look at the Tool column. Si la valeur de l’outil correspond à l’un des assemblys d’analyseur dans l’Explorateur de solutions, par exemple Microsoft.CodeQuality.Analyzers, la violation provient d’un analyseur Roslyn.If the Tool value matches one of the analyzer assemblies in Solution Explorer, for example Microsoft.CodeQuality.Analyzers, the violation comes from a Roslyn analyzer. Sinon, la violation proviennent de l’analyse statique du code.Otherwise, the violation originates from static code analysis.

Colonne d’outil dans la liste d’erreurs

Package NuGet ou d’extension VSIXNuGet package versus VSIX extension

.NET compiler Platform analyseurs peuvent être installé par le projet via un package NuGet, ou Visual Studio à l’échelle comme une extension Visual Studio..NET Compiler Platform analyzers can be installed per-project via a NuGet package, or Visual Studio-wide as a Visual Studio extension. Il existe des différences de comportement de la touche entre ces deux méthodes de l’installation d’analyseurs.There are some key behavior differences between these two methods of installing analyzers.

PortéeScope

Si vous installez des analyseurs comme une extension Visual Studio, ils s’appliquent au niveau de la solution, à toutes les instances de Visual Studio.If you install analyzers as a Visual Studio extension, they apply at the solution level, to all instances of Visual Studio. Si vous installez les analyseurs sous forme de package NuGet, qui est la méthode préférée, ils s’appliquent uniquement au projet dans lequel le package NuGet a été installé.If you install the analyzers as a NuGet package, which is the preferred method, they apply only to the project where the NuGet package was installed. Dans les environnements d’équipe, les analyseurs installés en tant que packages NuGet sont dans la portée de tous les développeurs qui fonctionnent sur ce projet.In team environments, analyzers installed as NuGet packages are in scope for all developers that work on that project.

Erreurs de buildBuild errors

Pour que les règles appliquées au moment de la génération, y compris via la ligne de commande ou dans le cadre d’une intégration continue (CI) build, installez les analyseurs sous forme de package NuGet.To have rules enforced at build time, including through the command line or as part of a continuous integration (CI) build, install the analyzers as a NuGet package. Erreurs et avertissements de l’analyseur n’apparaissent pas dans le rapport de génération si vous installez les analyseurs en tant qu’extension.Analyzer warnings and errors don't show up in the build report if you install the analyzers as an extension.

La capture d’écran suivante montre la sortie de génération de ligne de commande à partir de la génération d’un projet qui contient une violation de règle analyzer :The following screenshot shows the command-line build output from building a project that contains an analyzer rule violation:

Sortie MSBuild avec violation de règle

Gravité de la règleRule severity

Impossible de définir le niveau de gravité de règles à partir des analyseurs qui ont été installés en tant qu’une extension Visual Studio.You cannot set the severity of rules from analyzers that were installed as a Visual Studio extension. Pour configurer gravité de règle, installer les analyseurs sous forme de package NuGet.To configure rule severity, install the analyzers as a NuGet package.

Étapes suivantesNext steps

Voir aussiSee also