DiagnosticAnalyzer
是一个基于Roslyn的自定义扩展程序,其DiagnosticDescriptor
与DiagnosticSeverity.Error
如下所示
internal static DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId, Description, MessageFormat, Category, DiagnosticSeverity.Error);
使用扩展程序时,它确实会显示代码 上的 红色波形,这违反了诊断分析程序自定义规则,强调是错误,它甚至显示在Visual Studio的错误列表窗口中。
但是在编译时,此代码在Visual Studio的输出窗口中获得编译成功消息。这违背了将错误强调为诊断分析器严重性的整个概念。
如果这是Roslyn的默认工作方式,那么我们是否可以解决停止编译问题。
我正在使用:
答案 0 :(得分:3)
将诊断集成到实际构建管道中已经发生在VS“14”中。如果你在那里尝试相同的场景,它将导致编译错误。
此外,诊断现在附加到项目并通过NuGet分发,以便整个团队,持续集成构建等一致地发生错误。
答案 1 :(得分:1)
我正在使用VS2015 Update 3,这个问题仍然存在。我想强制执行局部变量和参数命名约定,事实证明,Roslyn默认情况下不支持这些,只能通过解决方法:SO link
然后,如果出现这样的错误,我想让构建失败,但Roslyn不具备此功能。
Roslyn可能是一个非常强大而强大的工具,但它仍然在最基本的任务中失败。太遗憾了。
(对于主持人:我仍然没有50位代表发表评论,而且我认为我不会有这样做)