Po wykonaniu z this samouczka z MS, stworzyłem analizator dla Roslyn.Reguła Roslyn Analyzer nie zawiedzie kompilacji
Według stronie można zaznaczyć regułę jako DiagnosticSeverity.Error
, a to spowoduje, że build złamać:
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);
W moim kodu, mam utworzeniu reguły mniej lub bardziej jak opisano tutaj:
private static readonly DiagnosticDescriptor Rule =
new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category,
DiagnosticSeverity.Error, true, helpLinkUri: HelpUrl);
Ta zasada działa poprawnie. Podnosi czerwone linie, wyświetla komunikat na liście błędów. Jednak kompilacja się udaje i mogę z powodzeniem uruchomić aplikację.
NB: Utworzona reguła służy do przechwytywania Thread.Sleep
dla tego przykładu.
Czy istnieje dodatkowa konfiguracja wymagana do zapewnienia reguła łamie budować?