다음을 통해 공유


규칙 집합 사용자 지정

코드 분석을 위한 특정 프로젝트 요구 사항을 충족하도록 사용자 지정 규칙 집합을 만들 수 있습니다.

기존 규칙 집합에서 사용자 지정 규칙 집합 만들기

사용자 지정 규칙 집합을 만들려면 규칙 집합 편집기에서 기본 제공 규칙 집합을 열 수 있습니다. 여기서 특정 규칙을 추가하거나 제거할 수 있으며, 규칙을 위반할 때 발생하는 작업(예: 경고 또는 오류 표시)을 변경할 수 있습니다.

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  2. 속성 페이지에서 Code Analysis 탭을 선택합니다.

  3. 활성 규칙 드롭다운 목록에서 다음 중 하나를 수행합니다.

    • 사용자 지정하려는 규칙 집합을 선택합니다.

      -또는-

    • 찾아보기를 <선택하여> 목록에 없는 기존 규칙 집합을 지정합니다.

  4. 열기를 선택하여 규칙 집합 편집기에 규칙을 표시합니다.

참고 항목

.NET Core 또는 .NET Standard 프로젝트가 있는 경우 프로젝트 속성의 Code Analysis 탭에서 동일한 옵션을 지원하지 않으므로 프로세스가 약간 다릅니다. 단계에 따라 미리 정의된 규칙 집합을 프로젝트에 복사하고 활성 규칙 집합으로 설정합니다. 규칙 집합을 복사한 후 솔루션 탐색기에서 열어 Visual Studio 규칙 집합 편집기에서 편집할 수 있습니다.

새 규칙 집합 만들기

새 파일 대화 상자에서 새 규칙 집합 파일을 만들 수 있습니다.

  1. 파일>새로 만들기>파일을 선택하거나 Ctrl+N을 누릅니다.

  2. 새 파일 대화 상자의 왼쪽에서 일반 범주를 선택한 다음 코드 분석 규칙 집합을 선택합니다.

  3. 열기를 선택합니다.

    .ruleset 파일이 규칙 집합 편집기에서 열립니다.

여러 규칙 집합에서 사용자 지정 규칙 집합 만들기

참고 항목

다음 절차는 Code Analysis 속성 탭에서 동일한 기능을 지원하지 않는 .NET Core 또는 .NET Standard 프로젝트에는 적용되지 않습니다.

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  2. 속성 페이지에서 Code Analysis 탭을 선택합니다.

  3. 활성 규칙에서 여러 규칙 집합> 선택을 선택합니다<.

  4. 규칙 집합 추가 또는 제거 대화 상자에서 새 규칙 집합에 포함할 규칙 집합을 선택합니다.

    Add or remove rule sets dialog box

  5. 다른 이름으로 저장을 선택하고 .ruleset 파일의 이름을 입력한 다음 저장을 선택합니다.

    이 규칙 집합 실행 목록에서 새 규칙 집합이 선택됩니다.

  6. 열기를 선택하여 새 규칙 집합을 규칙 집합 편집기에서 엽니다.

규칙 우선 순위

  • 규칙 집합에서 동일한 규칙이 다른 심각도로 두 번 이상 나열되면 컴파일러에서 오류가 발생합니다. 예시:

    <RuleSet Name="Rules for ClassLibrary21" Description="Code analysis rules for ClassLibrary21.csproj." ToolsVersion="15.0">
       <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
         <Rule Id="CA1021" Action="Warning" />
         <Rule Id="CA1021" Action="Error" />
       </Rules>
    </RuleSet>
    
  • 규칙 집합에서 동일한 규칙이 “동일한” 심각도로 두 번 이상 나열되면 오류 목록에 다음 경고가 표시될 수 있습니다.

    CA0063: 규칙 집합 파일 '[your].ruleset' 또는 종속 규칙 집합 파일 중 하나를 로드하지 못했습니다. 파일이 규칙 집합 스키마를 준수하지 않습니다.

  • Include 태그를 사용하여 규칙 집합에 자식 규칙 집합을 포함하고 자식 규칙 집합과 부모 규칙 집합이 모두 동일한 규칙을 나열하지만 심각도가 다른 경우 부모 규칙 집합의 심각도가 우선합니다. 예시:

    <!-- Parent rule set -->
    <?xml version="1.0" encoding="utf-8"?>
    <RuleSet Name="Rules for ClassLibrary21" Description="Code analysis rules for ClassLibrary21.csproj." ToolsVersion="15.0">
       <Include Path="classlibrary_child.ruleset" Action="Default" />
       <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
         <Rule Id="CA1021" Action="Warning" /> <!-- Overrides CA1021 severity from child rule set -->
       </Rules>
    </RuleSet>
    
    <!-- Child rule set -->
    <?xml version="1.0" encoding="utf-8"?>
    <RuleSet Name="Rules from child" Description="Code analysis rules from child." ToolsVersion="15.0">
       <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
         <Rule Id="CA1021" Action="Error" />
       </Rules>
    </RuleSet>
    

이름 및 설명

편집기에서 열려 있는 규칙 집합의 표시 이름을 변경하려면 보기>속성 창을 선택하여 속성 창을 엽니다. 이름 상자에 표시 이름을 입력합니다. 규칙 집합에 대한 설명도 입력할 수 있습니다.

다음 단계

이제 규칙을 설정했으므로 다음 단계는 규칙을 추가 또는 제거하거나 규칙 위반의 심각도를 수정하여 규칙을 사용자 지정하는 것입니다.