A regra do Roslyn Analyzer não falha na compilação
Seguindo emesta tutorial da MS, criei um analisador para Roslyn.
De acordo com a página, você pode marcar a regra comoDiagnosticSeverity.Error
, e isso fará com que a compilação seja interrompida:
Na linha que declara o campo Regra, você também pode atualizar a gravidade dos diagnósticos que você produzirá para erros, em vez de avisos. Se a sequência de caracteres regex não analisar, o método Match lançará definitivamente uma exceção no tempo de execução, e você deverá bloquear a compilação como faria com um erro do compilador C #. Altere a gravidade da regra para DiagnosticSeverity.Erro:
Regra estática interna do DiagnosticDescriptor = novo DiagnosticDescriptor (DiagnosticId, Título, MessageFormat, Categoria, DiagnosticSeverity.Error, isEnabledByDefault: true, descrição: Descrição);
No meu código, criei a regra mais ou menos conforme detalhado aqui:
private static readonly DiagnosticDescriptor Rule =
new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category,
DiagnosticSeverity.Error, true, helpLinkUri: HelpUrl);
Esta regra funciona bem. Ele exibe as linhas vermelhas, exibe a mensagem na lista de erros. No entanto, a compilação foi bem-sucedida e eu consigo executar o aplicativo com êxito.
NB: Eu criei esta regra para capturarThread.Sleep
para este exemplo.
É necessária uma configuração adicional para garantir que uma regra quebre a compilação?