Questions fréquentes (FAQ) sur FxCop et les analyseurs FxCopFrequently asked questions about FxCop and FxCop analyzers

Il peut être un peu difficile de comprendre les différences entre les analyseurs FxCop et FxCop hérité.It can be a little confusing to understand the differences between legacy FxCop and FxCop analyzers. Cet article vise à répondre à certaines des questions que vous pouvez vous poser.This article aims to address some of questions you might have.

Quelle est la différence entre les analyseurs FxCop et FxCop hérité ?What's the difference between legacy FxCop and FxCop analyzers?

FxCop hérité exécute une analyse post-build sur un assembly compilé.Legacy FxCop runs post-build analysis on a compiled assembly. Il s’exécute en tant qu’exécutable distinct appelé FxCopCmd.exe.It runs as a separate executable called FxCopCmd.exe. FxCopCmd.exe charge l’assembly compilé, exécute l’analyse du code, puis signale les résultats (ou diagnostics).FxCopCmd.exe loads the compiled assembly, runs code analysis, and then reports the results (or diagnostics).

Les analyseurs FxCop sont basés sur .NET Compiler Platform (« Roslyn »).FxCop analyzers are based on the .NET Compiler Platform ("Roslyn"). Vous les installez comme package NuGet référencé par le projet ou la solution.You install them as a NuGet package that's referenced by the project or solution. Les analyseurs FxCop exécutent une analyse basée sur le code source pendant l’exécution du compilateur.FxCop analyzers run source-code based analysis during compiler execution. Les analyseurs FxCop sont hébergés dans le processus du compilateur, csc.exe ou vbc.exe, et exécutent l’analyse quand le projet est généré.FxCop analyzers are hosted within the compiler process, either csc.exe or vbc.exe, and run analysis when the project is built. Les résultats des analyseurs sont signalés en même temps que les résultats du compilateur.Analyzer results are reported along with compiler results.

Note

Vous pouvez également installer des analyseurs FxCop en tant qu’extension Visual Studio.You can also install FxCop analyzers as a Visual Studio extension. Dans ce cas, les analyseurs s’exécutent quand vous tapez dans l’éditeur de code, mais pas au moment de la génération.In this case, the analyzers execute as you type in the code editor, but they don't execute at build time. Si vous voulez exécuter des analyseurs FxCop dans le cadre de l’intégration continue (CI), installez-les en tant que package NuGet à la place.If you want to run FxCop analyzers as part of continuous integration (CI), install them as a NuGet package instead.

La commande Exécuter l’analyse du Code exécute-t-elle les analyseurs FxCop ?Does the Run Code Analysis command run FxCop analyzers?

No.No. Lorsque vous sélectionnez analyser > exécuter l’analyse du code, l’analyse héritée est exécutée.When you select Analyze > Run Code Analysis, it executes legacy analysis. L’option Exécuter l’analyse du Code n’a aucun effet sur les analyseurs basés sur Roslyn, notamment les analyseurs FxCop basés sur Roslyn.Run Code Analysis has no effect on Roslyn-based analyzers, including the Roslyn-based FxCop analyzers.

La propriété de projet msbuild RunCodeAnalysis exécute-t-elle des analyseurs ?Does the RunCodeAnalysis msbuild project property run analyzers?

No.No. La propriété RunCodeAnalysis dans un fichier projet (par exemple, .csproj) est utilisée uniquement pour exécuter FxCop hérité.The RunCodeAnalysis property in a project file (for example, .csproj) is only used to execute legacy FxCop. Elle s’exécute une tâche msbuild post-build qui appelle FxCopCmd.exe.It runs a post-build msbuild task that invokes FxCopCmd.exe. Cela revient à sélectionner Analyser > Exécuter l’analyse du code dans Visual Studio.This is equivalent to selecting Analyze > Run Code Analysis in Visual Studio.

Alors, comment exécuter des analyseurs FxCop ?So how do I run FxCop analyzers then?

Pour exécuter des analyseurs FxCop, commencez par installer le package NuGet correspondant à ces derniers.To run FxCop analyzers, first install the NuGet package for them. Générez ensuite votre projet ou solution à partir de Visual Studio ou à l’aide de msbuild.Then build your project or solution from Visual Studio or using msbuild. Les avertissements et erreurs que génèrent les analyseurs FxCop s’affichent dans la liste d’erreurs ou la fenêtre Commande.The warnings and errors that the FxCop analyzers generate will appear in the Error List or the command window.

Je reçois l’avertissement CA0507 même après avoir installé le package NuGet d’analyseurs FxCopI get warning CA0507 even after I've installed the FxCop analyzers NuGet package

Si vous avez installé les analyseurs FxCop, mais que vous continuez à obtenir l’avertissement CA0507 « l’exécution de l’analyse du code » est dépréciée en faveur des analyseurs FxCop, qui s’exécutent pendant la génération» , vous devrez peut-être affecter la valeur falseà la propriété MSBuild RunCodeAnalysis dans votre fichier projet .If you've installed FxCop analyzers but continue to get warning CA0507 ""Run Code Analysis" has been deprecated in favor of FxCop analyzers, which run during build", you may need to set the RunCodeAnalysis msbuild property in your project file to false. Dans le cas contraire, l’analyse héritée s’exécutera après chaque génération.Otherwise, legacy analysis will execute after each build.

<RunCodeAnalysis>false</RunCodeAnalysis>

Quelles règles ont été portées vers les analyseurs FxCop ?Which rules have been ported to FxCop analyzers?

Pour plus d’informations sur les règles d’analyse héritées qui ont été portées vers les analyseurs FxCop, consultez État du port de la règle FXCop.For information about which legacy analysis rules have been ported to FxCop analyzers, see Fxcop rule port status.

Les avertissements d’analyse du code sont traités comme des erreursCode analysis warnings are treated as errors

Si votre projet utilise l’option de build pour traiter les avertissements comme des erreurs, les avertissements de l’analyseur FxCop peuvent apparaître comme des erreurs.If your project uses the build option to treat warnings as errors, FxCop analyzer warnings may appear as errors. Pour empêcher que des avertissements d’analyse du code ne soient traités comme des erreurs, suivez les étapes indiquées dans FAQ sur l' analyse du code.To prevent code analysis warnings from being treated as errors, follow the steps at Code analysis FAQ.

Voir aussiSee also