La regla del analizador de Roslyn no falla la compilación
Siguiendo desdeesta tutorial de MS, he creado un analizador para Roslyn.
Según la página, puede marcar la regla comoDiagnosticSeverity.Error
, y esto hará que la compilación se rompa:
En la línea que declara el campo Regla, también puede actualizar la gravedad de los diagnósticos que generará como errores en lugar de advertencias. Si la cadena de expresiones regulares no se analiza, el método Match definitivamente arrojará una excepción en el tiempo de ejecución, y debe bloquear la compilación como lo haría para un error del compilador de C #. Cambie la gravedad de la regla a DiagnosticSeverity.Error:
Regla estática interna de DiagnosticDescriptor = nuevo DiagnosticDescriptor (DiagnosticId, Title, MessageFormat, Category, DiagnosticSeverity.Error, isEnabledByDefault: true, description: Descripción);
En mi código, he creado la regla más o menos como se detalla aquí:
private static readonly DiagnosticDescriptor Rule =
new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category,
DiagnosticSeverity.Error, true, helpLinkUri: HelpUrl);
Esta regla funciona bien. Lanza las líneas rojas, muestra el mensaje en la lista de errores. Sin embargo, la compilación tiene éxito y puedo ejecutar con éxito la aplicación.
NÓTESE BIEN: He creado esta regla para capturarThread.Sleep
para este ejemplo
¿Se requiere una configuración adicional para garantizar que una regla rompa la compilación?