Следующее из this учебник от MS, я создал анализатор для Roslyn.Правило анализатора Roslyn не подводит итог:
Согласно странице, вы можете пометить правило как DiagnosticSeverity.Error
, и это заставит строить ломаться:
In the line declaring the Rule field, you can also update the severity of the diagnostics you’ll be producing to be errors rather than warnings. If the regex string doesn’t parse, the Match method will definitely throw an exception at run time, and you should block the build as you would for a C# compiler error. Change the rule’s severity to DiagnosticSeverity.Error:
internal static 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);
Это правило отлично работает. Он подбрасывает красные линии, отображает сообщение в списке ошибок. Однако сборка успешно завершена, и я могу успешно запустить приложение.
NB: Я создал это правило для захвата Thread.Sleep
для этого примера.
Есть ли дополнительные настройки, необходимые для обеспечения правило нарушает сборку?