如何禁用所有Roslyn代码分析器?

时间:2016-04-06 19:58:41

标签: c# visual-studio visual-studio-2015 roslyn analyzer

我正在尝试使用一个拥有少量Roslyn代码分析器的大型开源项目。当我打开解决方案时,Visual Studio使用~35%的CPU大约15分钟。使用PerfView我发现在解决方案上运行的代码分析器正在阻碍Visual Studio。

我知道可以在每个项目的基础上禁用分析器,但是这个解决方案包含100多个项目,所以我不想一个一个地这样做。

我的问题:

  • 我是否可以针对给定的解决方案禁用所有Roslyn分析器以避免这种情况?
  • 我可以在Visual Studio中为所有解决方案禁用所有Roslyn分析器吗?

6 个答案:

答案 0 :(得分:17)

您可以按项目禁用分析程序。

要执行此操作,请右键单击解决方案资源管理器中的项目>参考>分析工具,然后按打开活动规则集

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" />
...

答案 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)

在工具/选项/文本编辑器/C#/高级中禁用以下设置,并在分析组下禁用使用64 位进程进行代码分析。在vs2019中测试过。

enter image description here

答案 4 :(得分:1)

在csproj或Directory.Build.props文件中尝试以下组合

<RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
<RunAnalyzersDuringLiveAnalysis>false</RunAnalyzersDuringLiveAnalysis>
<RunAnalyzers>false</RunAnalyzers>

https://docs.microsoft.com/en-us/visualstudio/code-quality/disable-code-analysis?view=vs-2019#net-framework-projects

答案 5 :(得分:1)

对于Visual Studio 2019,

点击工具>选项

Options > Text Editor > Advanced

选项>文本编辑器>高级>

取消选中“使用64位进程进行代码分析”

您需要重新启动VS才能生效