.NET Compiler Platform(Roslyn) 분석기를 사용하여 코드 분석 - 분석기

.NET Compiler Platform(Roslyn) 분석기는 C# 또는 Visual Basic 코드에서 스타일, 품질, 유지 관리, 디자인 및 기타 문제를 검사합니다. 이 검사 또는 분석은 열려 있는 모든 파일에서 설계 시간 동안 이루어집니다.

분석기는 다음 그룹으로 나뉩니다.

  • 코드 스타일 분석기

    이러한 분석기는 Visual Studio에 기본 제공됩니다. 분석기의 진단 ID 또는 코드 형식은 IDExxxx(예: IDE0001)입니다. 기본 설정은 텍스트 편집기 옵션 페이지 또는 EditorConfig 파일에서 구성할 수 있습니다. .NET 5.0부터 코드 스타일 분석기는 .NET SDK에 포함되며 빌드 경고 또는 오류로 엄격하게 적용될 수 있습니다. 자세한 내용은 .NET 소스 코드 분석 개요를 참조하세요.

  • 코드 품질 분석기

    이러한 분석기는 .NET 5.0 이상 SDK에 포함되고 기본적으로 사용하도록 설정되어 있습니다. 분석기의 진단 ID 또는 코드 형식은 CAxxxx(예: CA1822)입니다. 자세한 내용은 .NET 코드 품질 분석 개요를 참조하세요.

  • 외부 분석기

    외부 분석기의 예로 StyleCop, Roslynator, xUnit 분석기Sonar 분석기가 있습니다. 이러한 분석기를 NuGet 패키지 또는 Visual Studio 확장으로 설치할 수 있습니다.

분석기의 심각도 수준

각 Roslyn 분석기 규칙 또는 진단에는 프로젝트에 맞게 사용자 지정할 수 있는 기본 심각도 및 비표시 상태가 있습니다.

심각도 수준에는 오류, 경고, 제안, 무음, 없음 및 기본값이 포함됩니다. 자세한 정보 및 동작은 심각도 수준 구성을 참조 하세요.

규칙 위반

분석기가 분석기 규칙 위반을 발견하면 오류 목록 창과 코드 편집기에서 보고합니다.

다음 스크린샷은 오류 목록 창에 보고된 규칙 위반을 보여 줍니다. 오류 목록에 보고된 분석기 위반은 규칙의 심각도 수준 설정과 일치합니다.

오류 목록 창에서 분석기 위반을 보여 주는 스크린샷

분석기 위반은 코드 편집기에도 표시되며, 위반 코드 아래에 물결선이 나타납니다. 예를 들어 다음 스크린샷에는 오류 1개(빨간색 물결선), 경고 1개(녹색 물결선), 제안 1개(회색 점 3개) 등 세 가지 위반이 표시되어 있습니다.

코드 편집기에서 오류, 경고 및 제안 표시를 보여 주는 스크린샷

코드 수정

많은 진단에는 규칙 위반을 수정하기 위해 적용할 수 있는 하나 이상의 관련 코드 수정이 있습니다. 코드 수정은 다른 형식의 빠른 작업과 함께 전구 아이콘 메뉴에 표시됩니다. 이러한 코드 수정에 대한 자세한 내용은 일반적인 빠른 작업을 참조하세요.

코드 편집기에서 분석기 위반 및 빠른 작업 코드 수정을 보여 주는 스크린샷

분석기 심각도 수준 구성

분석기 규칙의 심각도는 EditorConfig 파일 또는 전구 메뉴에서 구성할 수 있습니다.

코드를 빌드 시 검사하고 입력하는 동안 검사하도록 분석기를 구성할 수도 있습니다. 현재 문서에 대해서만 모든 열린 문서 또는 전체 솔루션에 대해 실행되는 라이브 코드 분석의 범위를 구성할 수 있습니다. 자세한 내용은 .NET에 대한 실시간 코드 분석 구성을 참조하세요.

코드 분석기의 빌드 시간 오류 및 경고는 분석기가 NuGet 패키지로 설치된 경우에만 표시됩니다. 기본 제공 분석기(예: IDE0067 및 IDE0068)는 빌드 도중 실행되지 않습니다.

외부 코드 분석기 설치

Visual Studio에는 항상 활성 상태인 Roslyn 분석기의 핵심 집합이 포함되어 있습니다. 더 많은 코드 분석기가 필요한 경우 NuGet 패키지를 통해 모든 프로젝트에 외부 분석기를 설치할 수 있습니다. 일부는 Visual Studio .vsix 확장으로도 사용할 수 있으며, 이 경우 Visual Studio에서 여는 모든 솔루션에 적용됩니다. 이러한 두 가지 유형의 분석기를 설치하는 방법에 대한 자세한 내용은 코드 분석기 설치를 참조하세요.

범위

기본 방법인 NuGet 패키지로 분석기를 설치하는 경우 NuGet 패키지가 설치된 프로젝트에만 적용됩니다. Visual Studio 확장으로 분석기를 설치하는 경우 모든 Visual Studio의 인스턴스에 솔루션 수준에서 적용됩니다. 팀 환경에서 NuGet 패키지로 설치된 분석기는 해당 프로젝트에서 작업하는 모든 개발자에 대한 범위에 있습니다.

참고 항목

자사 분석기는 .NET SDK에 포함되어 제공됩니다. 이러한 분석기를 Microsoft.CodeAnalysis.NetAnalyzersNuGet 패키지로 설치하는 대신 .NET SDK에서 사용하도록 설정하는 것이 좋습니다. .NET SDK에서 분석기를 사용하도록 설정하면 SDK를 업데이트하는 즉시 분석기 버그 수정과 새 분석기가 자동으로 다운로드됩니다. 분석기에 대한 자세한 내용은 자사 .NET 분석기 사용 또는 설치를 참조하세요.

빌드 오류

명령줄을 통해 또는 CI(연속 통합) 빌드로 빌드 시 규칙을 적용하려면 다음 옵션 중 하나를 선택합니다.

  • 기본적으로 코드 분석을 가능하게 하는 .NET 5.0 이상 프로젝트를 만듭니다. EnableNETAnalyzers 속성을 true로 설정하여 이전 버전의 .NET을 대상으로 하는 프로젝트에서 코드 분석을 사용하도록 설정합니다.

  • 분석기를 NuGet 패키지로 설치합니다. 분석기 경고 및 오류는 분석기를 확장으로 설치하는 경우 빌드 보고서에 표시되지 않습니다.

다음 스크린샷에서는 분석기 규칙 위반을 포함하는 프로젝트 빌드의 명령줄 빌드 출력을 보여줍니다.

개발자 명령 프롬프트에서 규칙 위반이 있는 MSBuild 출력을 보여 주는 스크린샷

규칙 심각도

규칙 심각도를 구성하려면 분석기를 NuGet 패키지로 설치해야 합니다. Visual Studio 확장으로 설치된 분석기에서는 규칙의 심각도를 구성할 수 없습니다.

다음 단계