Roslyn Analyzer-Regel schlägt beim Build nicht fehl

Folgen auf vonDie Tutorial von MS, ich habe einen Analysator für Roslyn erstellt.

Nach der Seite können Sie die Regel als @ markiereDiagnosticSeverity.Error, und dies wird den Build zum Absturz bringen:

In der Zeile, in der das Feld "Regel" deklariert ist, können Sie auch den Schweregrad der zu erstellenden Diagnose aktualisieren, sodass sie Fehler und keine Warnungen enthält. Wenn die Regex-Zeichenfolge nicht analysiert wird, löst die Match-Methode zur Laufzeit auf jeden Fall eine Ausnahme aus, und Sie sollten den Build wie bei einem C # -Compilerfehler blockieren. Ändern Sie den Schweregrad der Regel in DiagnosticSeverity.Error:

internal static DiagnosticDescriptor Rule = new DiagnosticDescriptor (DiagnosticId, Title, MessageFormat, Category, DiagnosticSeverity.Error, isEnabledByDefault: true, description: Description);

In meinem Code habe ich die Regel mehr oder weniger wie hier beschrieben erstellt:

private static readonly DiagnosticDescriptor Rule = 
  new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category,
  DiagnosticSeverity.Error, true, helpLinkUri: HelpUrl);

Diese Regel funktioniert gut. Es wirft die roten Linien auf und zeigt die Meldung in der Fehlerliste an. Der Build ist jedoch erfolgreich und ich kann die Anwendung erfolgreich ausführen.

NB: Ich habe diese Regel erstellt, um @ zu erfasseThread.Sleep für dieses Beispiel.

Ist ein zusätzliches Setup erforderlich, um sicherzustellen, dass eine Regel den Build bricht?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage