我正在尝试使用一个拥有少量Roslyn代码分析器的大型开源项目。当我打开解决方案时,Visual Studio使用~35%的CPU大约15分钟。使用PerfView我发现在解决方案上运行的代码分析器正在阻碍Visual Studio。
我知道可以在每个项目的基础上禁用分析器,但是这个解决方案包含100多个项目,所以我不想一个一个地这样做。
我的问题:
答案 0 :(得分:17)
您可以按项目禁用分析程序。
要执行此操作,请右键单击解决方案资源管理器中的项目>参考>分析工具,然后按打开活动规则集
您可以禁用单个分析仪或整个分析仪包。
这会创建一个<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" />
...
答案 1 :(得分:5)
尝试Tools/Options/Text Editor/C#/Advanced
并停用完整的解决方案分析。它仅在VS2015 Update 2之后可用。
答案 2 :(得分:2)
可以引用位于父文件夹
中的规则集文件<Project ...>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<CodeAnalysisRuleSet>..\Example.ruleset</CodeAnalysisRuleSet>
这样您就可以为整个解决方案定义一个规则集。
答案 3 :(得分:2)
答案 4 :(得分:1)
在csproj或Directory.Build.props文件中尝试以下组合
<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
<RunAnalyzersDuringLiveAnalysis>false</RunAnalyzersDuringLiveAnalysis>
<RunAnalyzers>false</RunAnalyzers>
答案 5 :(得分:1)