Share via


Übersicht über die Legacyanalyse für verwalteten Code in Visual Studio

Visual Studio kann die Codeanalyse von verwaltetem Code auf zwei Arten durchführen: mit der Legacyanalyse, die auch als statische FxCop-Analyse von verwalteten Assemblys bezeichnet wird, und mit den moderneren .NET Compiler Platform-basierten Codeanalysetools. In diesem Thema wird die Legacyanalyse behandelt. Weitere Informationen zur .NET Compiler Platform-basierten Codeanalyse finden Sie unter Übersicht über .NET Compiler Platform-basierte Analysetools.

Die Codeanalyse für verwalteten Code analysiert verwaltete Assemblys und erstellt einen Bericht mit Informationen zu diesen Assemblys, in dem z. B. Verletzungen der in den .NET-Designrichtlinien festgelegten Programmierungs- und Designregeln gemeldet werden.

Das Analysetool stellt die während einer Analyse durchgeführten Prüfungen als Warnmeldungen dar. In diesen Warnmeldungen werden alle relevanten Probleme im Zusammenhang mit Programmierung und Entwurf benannt. Nach Möglichkeit wird außerdem angegeben, wie das jeweilige Problem gelöst werden kann.

Hinweis

Legacyanalyse (statische Codeanalyse) wird für .NET Core- und .NET Standard-Projekte in Visual Studio nicht unterstützt. Wenn Sie die Codeanalyse für ein .NET Core- oder .NET Standard-Projekt als Teil von msbuild ausführen, wird ein ähnlicher Fehler wie dieser angezeigt: Fehler : CA0055 : Die Plattform für <your.dll> konnte nicht identifiziert werden. Verwenden Sie stattdessen Codeanalysetools, um Code in .NET Core- oder .NET Standard-Projekten zu analysieren.

Integration in die IDE

Sie können die Codeanalyse für Ihr Projekt manuell oder automatisch ausführen.

Wenn Sie bei jedem Buildvorgang eines Projekts eine Codeanalyse ausführen möchten, wählen Sie die entsprechende Option auf der Code Analysis-Eigenschaftenseite des Projekts aus. Weitere Informationen finden Sie unter Gewusst wie: Aktivieren und Deaktivieren der automatischen Codeanalyse.

Um die Codeanalyse manuell für ein Projekt auszuführen, wählen Sie in der Menüleiste Analysieren>Code Analysis ausführen>Codeanalyse für Projekt < ausführen> aus.

Regelsätze

Codeanalyseregeln für verwalteten Code werden in Regelsätze gruppiert. Sie können einen Standardregelsatz von Microsoft verwenden oder Sie können einen benutzerdefinierten Regelsatz erstellen, um eine bestimmte Anforderung zu erfüllen.

Unterdrücken von Warnungen

Es kann häufig hilfreich sein anzugeben, dass eine Warnung nicht zutreffend ist. Entwickler und andere Personen, die später möglicherweise den Code überprüfen, wissen dann, dass eine Warnung untersucht und unterdrückt oder ignoriert wurde.

Die Unterdrückung von Warnungen im Quellcode wird durch benutzerdefinierte Attribute implementiert. Fügen Sie zum Unterdrücken einer Warnung das Attribut SuppressMessage zum Quellcode hinzu, wie im folgenden Beispiel dargestellt:

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1039:ListsAreStrongTyped")]
Public class MyClass
{
   // code
}

Weitere Informationen finden Sie unter Unterdrücken von Warnungen.

Hinweis

Wenn Sie ein Projekt zu Visual Studio 2019 migrieren, werden Sie möglicherweise plötzlich mit einer großen Anzahl von Codeanalysewarnungen konfrontiert. Wenn Sie nicht bereit sind, die Warnungen zu beheben, können Sie alle unterdrücken, indem Sie Analysieren>Erstellen und aktive Probleme unterdrücken auswählen.

Ausführen der Codeanalyse im Rahmen der Eincheckrichtlinien

In einer Organisation ist es sinnvoll festzulegen, dass beim Einchecken stets bestimmte Richtlinien beachtet werden müssen. Insbesondere die folgenden Richtlinien sollten eingehalten werden:

  • Code muss beim Einchecken frei von Buildfehlern sein.

  • Die Codeanalyse muss als Teil des letzten Builds ausgeführt worden sein.

Die Einhaltung dieser Vorgaben können Sie durch das Definieren von Eincheckrichtlinien gewährleisten. Weitere Informationen finden Sie unter Verbessern der Codequalität mit Eincheckrichtlinien für das Projekt.

Team Build-Integration

Sie können die integrierten Features des Buildsystems verwenden, um das Analysetool im Rahmen des Buildprozesses auszuführen. Weitere Informationen finden Sie unter Azure Pipelines.