Delen via


Codeanalyse met behulp van .NET-compilerplatformanalyses (Roslyn)

Met .NET-compilerplatformanalyses (Roslyn) inspecteert u uw C# of Visual Basic-code voor stijl, kwaliteit, onderhoudbaarheid, ontwerp en andere problemen. Deze inspectie of analyse vindt plaats tijdens de ontwerptijd in alle geopende bestanden.

Analyzers zijn onderverdeeld in de volgende groepen:

Ernstniveaus van analysen

Elke Roslyn analyzer-regel of diagnostic heeft een standaard ernstniveau en onderdrukstatus die u naar uw project kunt aanpassen.

Ernstniveaus zijn onder andere: Fout, Waarschuwing, Suggestie, Stil, Geen en Standaard. Zie Ernstniveaus configureren voor gedetailleerde informatie en gedrag.

Regelschendingen

Als een analyzer schendingen van analyseregels vindt, worden deze in het venster Foutenlijst en in de code-editor gerapporteerd.

In de volgende schermopname ziet u regelschendingen die zijn gerapporteerd in het venster Foutenlijst . De analyseschendingen die in de lijst met fouten zijn gerapporteerd, komen overeen met de instelling van het ernstniveau van de regel:

Schermopname van analyseschendingen in het venster Foutenlijst.

De schendingen van de analyseregel worden ook weergegeven in de code-editor als golvende regels onder de offending-code. In de volgende schermopname ziet u bijvoorbeeld drie schendingen: één fout (rode golvende lijn), één waarschuwing (groene golvende lijn) en één suggestie (drie grijze stippen):

Schermopname van fout-, waarschuwings- en suggestiemarkeringen in de code-editor.

Oplossingen voor code

Veel diagnostische gegevens hebben een of meer gekoppelde codecorrecties die u kunt toepassen om de schending van de regel te corrigeren. Codecorrecties worden weergegeven in het pictogrammenu van de gloeilamp, samen met andere typen snelle acties. Zie Algemene snelle acties voor meer informatie over codecorrecties.

Schermopname van een analysefout en een oplossing voor snelle actiecode in de code-editor.

Ernstniveaus voor analyse configureren

U kunt de ernst van analyseregels configureren in een EditorConfig-bestand of in het gloeilampmenu.

U kunt ook analyzers configureren om code tijdens het bouwen te inspecteren en terwijl u typt. U kunt het bereik van live codeanalyse configureren om alleen voor het huidige document uit te voeren, alle geopende documenten of de hele oplossing. Zie Live Code-analyse configureren voor .NET voor meer informatie.

Aanbeveling

Build-time fouten en waarschuwingen van code-analyzers worden alleen weergegeven als de analyzers zijn geïnstalleerd als een NuGet-pakket. De ingebouwde analyses (bijvoorbeeld IDE0067 en IDE0068) worden nooit uitgevoerd tijdens de build.

Externe codeanalyse-installaties uitvoeren

Visual Studio bevat een kernset Roslyn-analyses, die altijd actief zijn. Als u meer codeanalyses nodig hebt, kunt u externe analyses voor elk project installeren via een NuGet-pakket. Sommige analyses zijn ook beschikbaar als een Visual Studio VSIX-extensie , in welk geval ze van toepassing zijn op elke oplossing die u opent in Visual Studio. Zie Code analyzers installeren voor meer informatie over het installeren van deze twee verschillende typen analyses.

Omvang

Als u een analyzer installeert als een NuGet-pakket, is de voorkeursmethode alleen van toepassing op het project waarin het NuGet-pakket is geïnstalleerd. Als u een analyzer als Visual Studio-extensie installeert, is dit van toepassing op oplossingsniveau en op alle exemplaren van Visual Studio. In teamomgevingen is een analyzer die je als een NuGet-pakket installeert in het bereik van alle ontwikkelaars die aan dat project werken.

Opmerking

Eigen analyzers worden meegeleverd met de .NET SDK. Het verdient de voorkeur dat u deze analyses inschakelt vanuit de .NET SDK in plaats van ze te installeren als een Microsoft.CodeAnalysis.NetAnalyzersNuGet-pakket. Als u de analyses inschakelt vanuit de .NET SDK, zorgt u ervoor dat u automatisch analysefoutoplossingen en nieuwe analyseoplossingen krijgt zodra u de SDK bijwerkt. Zie .NET Analyzers van derden in- of installeren voor meer informatie over analyse.

Buildfouten

Als u de regels tijdens de build wilt afdwingen, kiest u een van de volgende opties met behulp van een opdrachtregel- of CI-builds (continue integratie):

  • Maak een .NET 5.0- of hogerproject, waardoor codeanalyse standaard mogelijk is. Als u codeanalyse wilt inschakelen voor projecten die zich richten op eerdere .NET-versies, stelt u de eigenschap EnableNETAnalyzers in op true.

  • Installeer de analyzers als een NuGet-pakket. Als u de analyzers installeert als een Visual Studio-extensie, worden analysewaarschuwingen en -fouten niet weergegeven in het buildrapport.

In de volgende schermopname ziet u de commandoregeluitvoer van een project met een overtreding van de analyseringsregel:

Schermopname van een MSBuild-uitvoer met een regelschending in een opdrachtprompt voor ontwikkelaars.

Ernst van regel

Als u de ernst van de analyseregel wilt configureren, moet u de analyzer installeren als een NuGet-pakket. U kunt de ernst van regels niet configureren vanuit analysen die zijn geïnstalleerd als een Visual Studio-extensie.

Volgende stappen