Share via


Visual Studio의 관리 코드에 대한 레거시 분석 개요

Visual Studio는 관리형 어셈블리의 FxCop 정적 분석이라고 하는 레거시 분석을 사용하거나 최신 .NET Compiler Platform 기반 코드 분석기를 사용하는 두 가지 방법으로 관리 코드의 코드 분석을 수행할 수 있습니다. 이 항목에서는 레거시 분석을 다룹니다. .NET Compiler Platform 기반 코드 분석에 관한 자세한 내용은 .NET Compiler Platform 기반 분석기 개요를 참조하세요.

관리 코드에 대한 코드 분석에서는 관리되는 어셈블리를 분석하고, .NET 디자인 지침에 설정된 프로그래밍 및 디자인 규칙의 위반과 같은 어셈블리 관련 정보를 보고합니다.

분석 도구는 분석하는 동안 수행하는 검사를 경고 메시지로 나타냅니다. 경고 메시지는 관련 프로그래밍 및 디자인 문제를 식별하며 가능한 경우 문제 해결 방법에 대한 정보를 제공합니다.

참고 항목

레거시 분석(정적 코드 분석)은 Visual Studio의 .NET Core 및 .NET Standard 프로젝트에서 지원되지 않습니다. msbuild의 일부로 .NET Core 또는 .NET Standard 프로젝트에서 코드 분석을 실행하는 경우 error: CA0055: Could not identify platform for your.dll <와 유사한 오류가 표시됩니다>. .NET Core 또는 .NET Standard 프로젝트에서 코드를 분석하려면 코드 분석기를 대신 사용합니다.

IDE(통합 개발 환경) 통합

프로젝트에서 수동으로 또는 자동으로 코드 분석을 실행할 수 있습니다.

프로젝트를 빌드할 때마다 코드 분석을 실행하려면 프로젝트의 Code Analysis 속성 페이지에서 옵션을 선택합니다. 자세한 내용은 방법: 자동 Code Analysis 사용 및 사용 안 함을 참조하세요.

프로젝트에서 코드 분석을 수동으로 실행하려면 메뉴 모음에서 분석, 코드 분석 실행, 프로젝트에서 코드 분석>><실행을 선택합니다>.

규칙 집합

관리 코드에 대한 코드 분석 규칙은 규칙 집합으로 그룹화됩니다. Microsoft 표준 규칙 집합 중 하나를 사용하거나 특정 요구 사항에 맞게 사용자 지정 규칙 집합을 만들 수 있습니다.

경고 표시 안 함

경고가 적용되지 않는 것으로 표시하면 유용한 경우가 많습니다. 이렇게 하면 경고를 조사한 다음 이를 표시하지 않거나 무시하도록 설정했다는 것을 개발자와 나중에 이 코드를 검토할 수 있는 다른 사람에게 알릴 수 있습니다.

경고 ISS(In Source Suppression)는 사용자 지정 특성을 통해 구현됩니다. 경고를 표시하지 않으려면 다음 예제와 같이 소스 코드에 SuppressMessage 특성을 추가합니다.

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

자세한 내용은 경고 표시 안 함을 참조하세요.

참고 항목

프로젝트를 Visual Studio 2019로 마이그레이션하는 경우 갑자기 많은 코드 분석 경고가 표시될 수 있습니다. 경고를 해결할 준비가 되지 않은 경우에는 분석>빌드 및 활성 문제 표시 안 함을 선택하여 경고를 모두 표시하지 않을 수 있습니다.

체크 인 정책의 일부로 코드 분석 실행

조직에서 반드시 특정 정책에 따라 체크 인을 수행하려는 경우 특히 다음 정책을 따르는지 확인할 수 있습니다.

  • 체크 인되는 코드에는 빌드 오류가 없습니다.

  • 코드 분석은 가장 최근 빌드의 일부로 실행됩니다.

체크 인 정책을 지정하여 위 사항을 확인할 수 있습니다. 자세한 내용은 프로젝트 체크 인 정책을 사용하여 코드 품질 향상을 참조하세요.

팀 빌드 통합

빌드 시스템의 통합된 기능을 사용하여 빌드 프로세스의 일부로 분석 도구를 실행할 수 있습니다. 자세한 내용은 Azure Pipelines를 참조하세요.