Freigeben über


Codeanalyse mithilfe von .NET Compiler Platform (Roslyn)-Analyzern

Die .NET-Compilerplattform (Roslyn) prüft Ihren C#- oder Visual Basic-Code auf Stil, Qualität, Wartung, Entwurf und andere Probleme. Diese Überprüfung oder Analyse erfolgt während der Entwurfszeit in allen geöffneten Dateien.

Analysatoren sind in die folgenden Gruppen unterteilt:

Schweregrad der Analysegeräte

Jede Roslyn Analyzer-Regel oder Diagnose verfügt über einen Standardschweregrad- und Unterdrückungszustand, den Sie für Ihr Projekt anpassen können.

Schweregradstufen umfassen: Fehler, Warnung, Vorschlag, Stumm, Ohne und Standard. Ausführliche Informationen und Verhalten finden Sie unter "Konfigurieren von Schweregraden".

Regelverstöße

Wenn ein Analyzer Regelverstöße findet, meldet er sie im Fenster " Fehlerliste " und im Code-Editor.

Der folgende Screenshot zeigt regelverstöße, die im Fenster "Fehlerliste " gemeldet wurden. Die in der Fehlerliste gemeldeten Verstöße stimmen mit der Schweregrad-Einstellung der Regel überein.

Screenshot der Analyseverletzungen im Fenster

Regelverletzungen des Analyzers erscheinen im Code-Editor als Wellenlinien unter dem fehlerhaften Code. Der folgende Screenshot zeigt beispielsweise drei Verletzungen: einen Fehler (rote Wellenlinie), eine Warnung (grüne Wellenlinie) und einen Vorschlag (drei graue Punkte):

Screenshot mit Fehler-, Warnungs- und Vorschlagsmarkierungen im Code-Editor.

Codekorrekturen

Viele Diagnosen verfügen über eine oder mehrere zugehörige Codefixes , die Sie anwenden können, um die Regelverletzung zu korrigieren. Code-Korrekturen werden im Glühbirnen-Symbolmenü zusammen mit anderen Arten von Schnellaktionen angezeigt. Weitere Informationen zu Codefixes finden Sie unter "Allgemeine Schnelle Aktionen".

Screenshot, das eine Analysatorverletzung und eine Quick Action-Codekorrektur im Code-Editor zeigt.

Konfigurieren von Schweregraden des Analysators

Sie können den Schweregrad der Analyseregeln in einer EditorConfig-Datei oder über das Glühbirnenmenü konfigurieren.

Sie können auch Analysegeräte konfigurieren, um Code zur Erstellungszeit und während der Eingabe zu prüfen. Sie können den Umfang der Livecodeanalyse so konfigurieren, dass sie nur für das aktuelle Dokument, alle geöffneten Dokumente oder die gesamte Lösung ausgeführt wird. Weitere Informationen finden Sie unter Konfigurieren der Livecodeanalyse für .NET.

Tipp

Buildzeitfehler und Warnungen von Codeanalysatoren werden nur angezeigt, wenn die Analysegeräte als NuGet-Paket installiert werden. Die integrierten Analysatoren (z. B. IDE0067 und IDE0068) werden beim Build nie ausgeführt.

Installieren externer Codeanalysatoren

Visual Studio enthält einen Kernsatz von Roslyn-Analyzern, die immer aktiv sind. Wenn Sie weitere Codeanalysatoren benötigen, können Sie externe Analyzer für jedes Projekt über ein NuGet-Paket installieren. Einige Analyzer sind auch als Vsix-Erweiterung von Visual Studio verfügbar. In diesem Fall gelten sie für jede Lösung, die Sie in Visual Studio öffnen. Informationen zum Installieren dieser beiden verschiedenen Analysetypen finden Sie unter Installieren von Codeanalyses.

Umfang

Wenn Sie einen Analyzer als NuGet-Paket installieren, gilt die bevorzugte Methode für externe Analysegeräte nur für das Projekt, in dem das NuGet-Paket installiert ist. Wenn Sie hingegen einen Analyzer als Visual Studio-Erweiterung installieren, gilt dies auf der Ebene der Projektmappe und für alle Instanzen von Visual Studio. In Teamumgebungen ist ein Analyzer, den Sie als NuGet-Paket installieren, für alle Entwickler aktiv, die an diesem Projekt arbeiten.

Hinweis

Erstanbieteranalysatoren werden im .NET SDK ausgeliefert. Es ist vorzuziehen, dass Sie diese Analyzer aus dem .NET SDK aktivieren, anstatt sie als Microsoft.CodeAnalysis.NetAnalyzersNuGet-Paket zu installieren. Wenn Sie die Analysegeräte aus dem .NET SDK aktivieren, wird sichergestellt, dass Sie automatisch Fehlerkorrekturen und neue Analyzer erhalten, sobald Sie das SDK aktualisieren. Weitere Informationen zu Analyzern finden Sie unter Aktivieren oder Installieren von .NET-Analyzern von Erstanbietern.

Buildfehler

Um die Regeln zum Zeitpunkt der Erstellung durchzusetzen, wählen Sie eine der folgenden Optionen aus und verwenden dabei entweder eine Befehlszeile oder CI-Builds (Continuous Integration).

  • Erstellen Sie ein .NET 5.0- oder höher-Projekt, das standardmäßig die Codeanalyse ermöglicht. Um die Codeanalyse für Projekte zu aktivieren, die auf frühere .NET-Versionen abzielen, legen Sie die EnableNETAnalyzers-Eigenschaft auf true.

  • Installieren Sie die Analysegeräte als NuGet-Paket. Wenn Sie die Analysegeräte als Visual Studio-Erweiterung installieren, werden Warnungen und Fehler im Buildbericht nicht angezeigt.

Der folgende Screenshot zeigt die Befehlszeilenausgabe des Builds beim Erstellen eines Projekts, das einen Verstoß gegen eine Analyserichtlinie enthält.

Screenshot einer MSBuild-Ausgabe mit einer Regelverletzung in einer Entwickler-Eingabeaufforderung.

Regelschweregrad

Wenn Sie den Schweregrad der Analyseregel für externe Analyzer konfigurieren möchten, müssen Sie den Analyzer als NuGet-Paket installieren. Sie können den Regelschweregrad von Analysegeräten, die als Visual Studio-Erweiterung installiert wurden, nicht konfigurieren.

Nächste Schritte