Codeanalyse mithilfe von .NET Compiler Platform (Roslyn)-Analysetools
Analysetools der .NET Compiler Platform (Roslyn) analysieren Ihren C#- oder Visual Basic-Code auf Stil, Qualität, Verwaltbarkeit, Design und unter weiteren Aspekten. Diese Prüfung oder Analyse wird zur Entwurfszeit in allen geöffneten Dateien durchgeführt.
Analysetools können in die folgenden Gruppen unterteilt werden:
-
Diese Analysetools werden in Visual Studio integriert. Die Diagnose-ID des Analysetools oder das Codeformat lautet „IDExxxx“, z. B. IDE0001. Sie können Einstellungen auf der Text-Editor-Optionenseite oder in einer EditorConfig-Datei konfigurieren. Ab .NET 5.0 sind Codeformat-Analysetools im .NET SDK enthalten und können als Buildwarnungen oder -Fehler strikt erzwungen werden. Weitere Informationen finden Sie unter Übersicht über die .NET-Quellcodeanalyse.
-
Diese Analysetools sind jetzt im .NET 5.0 und neueren SDK enthalten und standardmäßig aktiviert. Die Diagnose-ID des Analysetools bzw. das Codeformat lautet CAxxxx, z. B. CA1822. Weitere Informationen finden Sie unter Analyse der .NET-Codequalität.
Externe Analysetools
Beispiele für externe Analysetools sind StyleCop, Roslynator, xUnit Analyzers und Sonar Analyzer. Sie können diese Analysetools entweder als NuGet-Paket oder als Visual Studio-Erweiterung installieren.
Schweregrade von Analysetools
Jede Regel oder Diagnose des Roslyn-Analysetools weist einen Standardstatus bezüglich Schweregrad und Unterdrückung auf, den Sie für Ihr Projekt anpassen können.
Schweregradstufen umfassen: Fehler, Warnung, Vorschlag, Lautlos, Keine 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 vom Analysetool gefundenen Verstöße stimmen mit der Einstellung für den Schweregrad der Regel überein:
Außerdem werden die Analysetool-Regelverstöße auch im Code-Editor als Wellenlinie unter dem fehlerhaften Code angezeigt. In dem folgenden Screenshot werden zum Beispiel drei Verstöße angezeigt ein Fehler (rote Wellenlinie), eine Warnung (grüne Wellenlinie) und ein Vorschlag (drei graue Punkte):
Codekorrekturen
Viele Diagnosen verfügen über mindestens einen Codefix, den Sie zur Korrektur von Regelverstößen anwenden können. Codekorrekturen werden zusammen mit anderen schnellen Aktionen im Fehlerbehebungsmenü (Glühbirnensymbol) angezeigt. Weitere Informationen zu Codefixen siehe Häufige schnelle Aktionen.
Konfigurieren von Analysetool-Schweregraden
Sie können den Schweregrad von Analysetoolregeln in einer EditorConfig-Datei oder im Glühbirnenmenü konfigurieren.
Sie können auch Analysetools konfigurieren, so dass sie den Code zur Erstellungszeit und während Ihrer Eingabe überprüfen. Sie können den Bereich der Livecodeanalyse konfigurieren, um die Ausführung nur auf das aktuelle Dokument, alle geöffneten Dokumente oder die gesamte Projektmappe zu beschränken. Weitere Informationen finden Sie unter Konfigurieren von Live-Codeanalysen für .NET.
Tipp
Buildfehler und Warnungen von Codeanalysetools werden nur angezeigt, wenn die Analysetools als NuGet-Paket installiert wurden. Die integrierten Analysetools wie IDE0067 und IDE0068 werden nie während des Buildvorgangs ausgeführt.
Installieren externer Analysetools
Visual Studio enthält einen Kernsatz von Roslyn-Analysetools, die immer aktiv sind. Wenn Sie mehr Code-Analysetools benötigen, können Sie externe Analysetools für jedes Projekt in Form eines NuGet-Pakets installieren. Einige Analysetools sind auch als Visual Studio-.vsix-Erweiterung verfügbar. Dadurch können Sie sie in jeder Projektmappe anwenden, die Sie in Visual Studio öffnen. Informationen zum Installieren dieser beiden verschiedenen Analysetool-Typen finden Sie unter Installieren von Code-Analystools.
`Scope`
Wenn Sie ein Analysetool als NuGet-Paket als empfohlene Methode installieren, wird sie nur für das Projekt angewandt, in dem das NuGet-Paket installiert wurde. Andernfalls, wenn Sie ein Analysetool als Visual Studio-Erweiterung installieren, wird es auf Projektmappenebene und für alle Instanzen von Visual Studio angewandt. Ein Analysetool, das Sie als NuGet-Pakete in Teamumgebungen installiert haben, ist relevant für alle Entwickler, die an diesem Projekt arbeiten.
Hinweis
Analysetools von Erstanbietern sind Bestandteil des .NET SDK. Es ist vorzuziehen, dass Sie diese Analysetools aus dem .NET SDK aktivieren, anstatt sie als Microsoft.CodeAnalysis.NetAnalyzers
NuGet-Paket zu installieren. Wenn Sie die Analysegeräte aus dem .NET SDK aktivieren, wird sichergestellt, dass Sie Fehlerkorrekturen für die Analysetools und neue Analysetools automatisch erhalten, sobald Sie das SDK aktualisieren. Weitere Informationen zu Analysetools finden Sie unter Aktivieren oder Installieren von .NET-Analysetools von Erstanbietern.
Buildfehler
Um die Regeln beim Erstellen des Builds zu erzwingen, indem Sie entweder eine Befehlszeile oder CI-Builds (Continuous Integration) verwenden, wählen Sie eine der folgenden Optionen aus:
Erstellen Sie ein Projekt mit .NET 5.0- oder höher, das standardmäßig die Codeanalyse ermöglicht. Um die Codeanalyse für Projekte zu aktivieren, die auf frühere Versionen von .NET abzielen, legen Sie die Eigenschaft EnableNETAnalyzers auf
true
fest.Installieren Sie das Analysetool als NuGet-Paket. Wenn Sie die Analysetools als Visual Studio-Erweiterung installieren, werden Analysetool-Warnungen und -Fehler nicht im Build-Bericht angezeigt.
Der folgende Screenshot zeigt die Befehlszeilen-Buildausgabe vom Erstellen eines Projekts an, das einen Analysetool-Regelverstoß enthält:
Regelschweregrad
Wenn Sie den Regelschweregrad des Analysetools konfigurieren wollen, müssen Sie die Analysetools als NuGet-Paket installieren. Den Regelschweregrad von Analysetools, die als Visual Studio-Erweiterung installiert wurden, können Sie nicht konfigurieren.