当前是否可以扩展Roslyn编译并添加一些自定义规则集,这些规则集会破坏构建并显示在VisualStudio的ErrorList中?
我搜索了StackOverflow,但是没有有效的答案-也许最近这个话题出现了问题,或者还有其他方法可以在没有roslyn的情况下做到这一点?
答案 0 :(得分:1)
Roslyn –自定义构建错误扩展
就像Slaks和JoshVarty所说,这是分析器功能。要创建自定义的Roslyn分析器规则,可以查看以下MS教程:
C# and Visual Basic - Use Roslyn to Write a Live Code Analyzer for Your API。
在本文档中,您可以找到以下描述:
在声明“规则”字段的行中,您还可以更新严重性 您将产生的诊断结果是错误的,而不是错误的 警告。如果不解析正则表达式字符串,则Match方法将 绝对在运行时引发异常,您应该阻止 生成C#编译器错误的方法。更改规则的严重性 到DiagnosticSeverity.Error:
internal static DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category, DiagnosticSeverity.Error, isEnabledByDefault: true, description: Description);
这将导致构建中断。
和
为了使构建因规则而失败,您需要添加 分析器作为项目的nuget包。这将确保 失败将导致构建失败。
认证:Roslyn Analyzer Rule does not fail the build。
希望这会有所帮助。