J'essaie de travailler avec un grand projet open source qui a une poignée d'analyseurs de code Roslyn. Lorsque j'ouvre la solution, Visual Studio utilise environ 35% de CPU pendant environ 15 minutes. En utilisant PerfView, j'ai compris que les analyseurs de code exécutés sur la solution embourbent Visual Studio.
Je sais qu'il est possible de désactiver les analyseurs par projet, mais cette solution contient plus de 100 projets, donc je préfère ne pas le faire un par un.
Mes questions):
Essayez Tools/Options/Text Editor/C#/Advanced
et désactivez l'analyse complète de la solution. Il n'est disponible que depuis VS2015 Update 2.
Vous pouvez désactiver les analyseurs par projet.
Pour ce faire, cliquez avec le bouton droit sur Projet> Références> Analyseurs dans l'explorateur de solutions et appuyez sur Ouvrir le jeu de règles actif
Vous pouvez désactiver des analyseurs individuels ou des ensembles entiers d'analyseurs.
Cela crée un <ProjectName>.ruleset
fichier et modifie le <ProjectName>.csproj
, ce qui signifie que vous partagerez cette configuration avec votre équipe, sauf si vous excluez ces modifications du contrôle de code source.
Remarque: les modifications sont appliquées après la fermeture et la réouverture de la solution.
Modifications du .csproj
:
<Project ...>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<CodeAnalysisRuleSet>Example.ruleset</CodeAnalysisRuleSet>
Example.ruleset
fichier:
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Rules for WpfApplication1" Description="Code analysis rules for WpfApplication1.csproj." ToolsVersion="14.0">
<Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
<Rule Id="AD0001" Action="None" />
<Rule Id="CS0028" Action="None" />
...
Il est possible de référencer un fichier d'ensemble de règles situé dans le dossier parent
<Project ...>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<CodeAnalysisRuleSet>..\Example.ruleset</CodeAnalysisRuleSet>
De cette façon, vous pouvez définir un ensemble de règles pour l'ensemble de la solution.