Tag: analyzer

Roslyn Analyzer规则不会使构建失败

继MS的本教程之后,我为Roslyn创建了一个分析器。 根据该页面,您可以将规则标记为DiagnosticSeverity.Error ,这将导致构建中断: 在声明“规则”字段的行中,您还可以将要生成的诊断的严重性更新为错误而不是警告。 如果正则表达式字符串不解析,Match方法肯定会在运行时抛出exception,您应该像编译C#编译器错误一样阻止构建。 将规则的严重性更改为DiagnosticSeverity.Error: 内部静态DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId,Title,MessageFormat,Category,DiagnosticSeverity.Error,isEnabledByDefault:true,description:Description); 在我的代码中,我已经或多或少地创建了规则,如下所示: private static readonly DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category, DiagnosticSeverity.Error, true, helpLinkUri: HelpUrl); 这条规则很好。 它会抛出红线,它会在错误列表中显示消息。 但是,构建成功,我能够成功运行该应用程序。 注意:我已创建此规则以捕获此示例的Thread.Sleep 。 是否需要额外的设置来确保规则中断构建?

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

我正在尝试使用一个拥有少量Roslyn代码分析器的大型开源项目。 当我打开解决方案时,Visual Studio使用~35%的CPU大约15分钟。 使用PerfView我发现在解决方案上运行的代码分析器正在使Visual Studio陷入困境。 我知道可以在每个项目的基础上禁用分析器,但是这个解决方案包含100多个项目,所以我不想一个一个地执行此操作。 我的问题: 我可以为给定的解决方案禁用所有Roslyn分析器以避免这种情况吗? 我可以在Visual Studio中为所有解决方案禁用所有Roslyn分析器吗?