2016-04-06 5 views
16

私は、大量のRoslynコードアナライザを持つ大規模なオープンソースプロジェクトを扱おうとしています。ソリューションを開くと、Visual Studioは〜35%のCPUを約15分間使用します。 PerfViewを使用する私は、ソリューション上で実行されているコードアナライザがVisual Studioを悩ませていることを知りました。すべてのRoslynコードアナライザを無効にするにはどうすればよいですか?

アナライザをプロジェクトごとに無効にすることは可能ですが、このソリューションには100を超えるプロジェクトが含まれているため、これを1つずつ実行しないでください。

私の質問(複数可):

  • が、私はこれを回避するために与えられた解決のためにすべてのロスリンアナライザを無効にすることはできますか?
  • Visual StudioですべてのソリューションのすべてのRoslynアナライザを無効にすることはできますか?

答えて

3

Tools/Options/Text Editor/C#/Advancedを試してみて、完全なソリューションの分析を無効にします。親フォルダ

<Project ...> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <CodeAnalysisRuleSet>..\Example.ruleset</CodeAnalysisRuleSet> 

あなたはソリューション全体のために1つのルールセットを定義することができ、この方法にあるルールセットファイルを参照することが可能となるVS2015の更新以来2

+0

これは素晴らしい、感謝しました! – JoshVarty

+0

@ JoshVarty、私はUpdate 2をインストールしましたが、そこには何もありません。 – Maxim

+0

エディタヘルパーグループのチェックボックスです。 – Tamas

8

アナライザーをプロジェクトごとに無効にすることができます。 、それを行う権利ソリューションエクスプローラプロジェクト>参考資料>アナライザをクリックするとし

あなたは、個々のアナライザやの全体の束を無効にすることができ

screenshot with the location of Open Active Rule Set

を設定オープンアクティブなルールを打ちます分析装置。

checkboxes to disable analyzers

これは<ProjectName>.rulesetファイルを作成し、ソース管理から、これらの変更を除外しない限り、あなたのチームとこの設定を共有することを意味し、<ProjectName>.csprojを変更します。

注:変更を適用するには、ソリューションを終了してからもう一度開く必要があります。 .csproj


変更:

<Project ...> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <CodeAnalysisRuleSet>Example.ruleset</CodeAnalysisRuleSet> 

Example.rulesetファイル:

<?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" /> 
... 
+0

ここでの問題は、ソリューションに何百ものプロジェクトがあるため、私はそれらを1つずつ無効にする必要がないことを望んでいたことです。彼らは私が制御しないソース管理下にあるので、私が引っ張ったときに私の変更が上書きされると信じていますよね? – JoshVarty

+1

ソリューション全体のスケールでアナライザを管理する方法があることを願っています。おそらく誰かが参加するでしょう。 –

+0

ソース管理の問題を回避するには、デフォルトの '.ruleset'ファイルを作成して(' .csproj'が更新されるように)これらの変更をコミットしてください。次に、設定を適用し、[このガイドでgit repoを変更してください](https:// stackoverflow。com/questions/8309304/keep-secret-out-of-a-git-repositoryのためのベストプラクティス) –

2

のみ利用可能です。

関連する問題