Visual Studio는 관리되는 어셈블리의 FxCop 정적 분석이라고도 하는 레거시 분석과 최신 .NET 컴파일러 플랫폼 기반 코드 분석기를 사용하는 두 가지 방법으로 관리 코드의 코드 분석을 수행할 수 있습니다. 이 항목에서는 레거시 분석에 대해 설명합니다. .NET 컴파일러 플랫폼 기반 코드 분석에 대한 자세한 내용은 .NET 컴파일러 플랫폼 기반 분석기의 개요를 참조하세요.
관리 코드에 대한 코드 분석은 관리되는 어셈블리를 분석하고 .NET 디자인 지침에 명시된 프로그래밍 및 디자인 규칙 위반과 같은 어셈블리에 대한 정보를 보고합니다.
분석 도구는 분석 중에 수행하는 검사를 경고 메시지로 나타냅니다. 경고 메시지는 관련 프로그래밍 및 디자인 문제를 식별하고 가능한 경우 문제를 해결하는 방법에 대한 정보를 제공합니다.
비고
Visual Studio의 .NET Core 및 .NET Standard 프로젝트에는 레거시 분석(정적 코드 분석)이 지원되지 않습니다. msbuild의 일부로 .NET Core 또는 .NET Standard 프로젝트에서 코드 분석을 실행하는 경우 오류와 유사한 오류가 표시됩니다. CA0055:your.dll<플랫폼을 > 식별할 수 없습니다. .NET Core 또는 .NET Standard 프로젝트에서 코드를 분석하려면 코드 분석기를 대신 사용합니다.
IDE(통합 개발 환경) 통합
프로젝트에서 수동으로 또는 자동으로 코드 분석을 실행할 수 있습니다.
프로젝트를 빌드할 때마다 코드 분석을 실행하려면 프로젝트의 코드 분석 속성 페이지에서 옵션을 선택합니다. 자세한 내용은 방법: 자동 코드 분석 사용 및 비활성화를 참조하세요.
프로젝트에서 코드 분석을 수동으로 실행하려면 메뉴 모음에서 분석>코드 분석 실행> 또는 > 코드 분석 실행을 선택합니다.
규칙 집합
관리 코드에 대한 코드 분석 규칙은 규칙 집합으로 그룹화됩니다. Microsoft 표준 규칙 집합 중 하나를 사용하거나 사용자 지정 규칙 집합을 만들어 특정 요구 사항을 충족할 수 있습니다.
경고 표시 안 함
경고가 적용되지 않는다는 것을 나타내는 것이 유용한 경우가 많습니다. 그러면 나중에 코드를 검토할 수 있는 개발자와 다른 사용자에게 경고를 조사한 다음 억제하거나 무시했음을 알릴 수 있습니다.
원본에서 경고를 숨기는 기능은 사용자 지정 특성을 통해 구현됩니다. 경고를 억제하려면 다음 예에 나와 있는 것처럼 소스 코드에 속성을 SuppressMessage
추가하십시오.
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1039:ListsAreStrongTyped")]
Public class MyClass
{
// code
}
자세한 내용은 경고 표시 안 함을 참조하세요.
비고
프로젝트를 Visual Studio 2019로 마이그레이션하는 경우 갑자기 많은 수의 코드 분석 경고가 발생할 수 있습니다. 경고를 수정할 준비가 되어 있지 않다면 분석>빌드 및 활성 문제 억제를 선택하여 경고를 모두 숨길 수 있습니다.
체크 인 정책의 일부로 코드 분석 실행
조직에서는 모든 체크 인이 특정 정책을 충족하도록 요구할 수 있습니다. 특히 다음 정책을 준수해야 합니다.
체크 인되는 코드에는 빌드 오류가 없습니다.
코드 분석은 최신 빌드의 일부로 실행됩니다.
체크 인 정책을 지정하여 이 작업을 수행할 수 있습니다. 자세한 내용은 프로젝트 체크 인 정책을 사용하여 코드 품질 향상을 참조하세요.
팀 빌드 통합
빌드 시스템의 통합 기능을 사용하여 빌드 프로세스의 일부로 분석 도구를 실행할 수 있습니다. 자세한 내용은 Azure Pipelines 참조하세요.