연습: 관리 코드의 코드 오류 분석

업데이트: 2007년 11월

이 연습에서는 코드 분석 도구를 사용하여 관리되는 프로젝트의 코드 오류를 분석합니다.

이 연습에서는 코드 분석을 사용하여 .NET 관리 코드 어셈블리가 Microsoft .NET Framework 디자인 지침에 맞는지 분석하는 프로세스를 단계별로 설명합니다.

이 연습에서는 다음을 수행합니다.

  • 코드 오류 경고를 분석 및 수정합니다.

사전 요구 사항

  • Visual Studio Team System Development Edition.

  • ManagedDemo 샘플의 복사본입니다.

관리되는 프로젝트의 코드 오류를 분석하려면

  1. Development Edition에서 ManagedDemo 솔루션을 엽니다.

  2. 솔루션 탐색기에서 ManagedDemo 프로젝트를 선택합니다.

  3. 프로젝트 메뉴에서 속성을 선택합니다.

    ManagedDemo 속성 페이지가 표시됩니다.

  4. 코드분석을 클릭합니다.

  5. 코드 분석 사용(CODE_ANALYSIS 상수 정의)을 선택합니다.

  6. 파일 메뉴에서 선택한 항목 저장을 클릭한 다음 ManagedDemo 속성 페이지를 닫습니다.

  7. 빌드 메뉴에서 ManagedDemo 빌드를 클릭합니다.

    오류 목록 및 출력 창에 ManagedDemo 프로젝트 빌드 경고가 보고됩니다.

코드 분석 규칙 위반을 해결하려면

  1. 보기 메뉴에서 오류 목록을 클릭합니다.

    선택한 개발자 프로필에 따라 보기 메뉴의 다른 창을 가리킨 다음 오류 목록을 클릭해야 할 수도 있습니다.

  2. 솔루션 탐색기에서 모든 파일 표시를 클릭합니다.

  3. 그런 다음 구성 노드를 확장하고 AssemblyInfo.cs 파일을 엽니다.

  4. 다음 표를 사용하여 경고를 해결합니다.

경고

경고 해결 방법

어셈블리를 CLSCompliantAttribute로 표시하십시오.: Microsoft.Design: 'ManagedDemo'는 CLSCompliantAttribute로 표시해야 하며 그 값은 true여야 합니다.

  1. AssemblyInfo.cs 파일에 usingSystem; 코드를 추가합니다.

  2. 그런 다음 AssemblyInfo.cs 파일의 끝에 [assembly: CLSCompliant(true)] 코드를 추가합니다.

  3. 프로젝트를 다시 빌드합니다.

컴파일러 경고(수준 1) CS3008.

  1. 필드 이름 _item을 ItemCount로 변경합니다.

  2. public static int item { get { return _item; } }을 ItemCount를 반환하도록 수정합니다.

  3. 프로젝트를 다시 빌드합니다.

ISerializable 형식을 SerializableAttribute로 표시하십시오.: Microsoft.Usage: 이 형식이 ISerializable을 구현하므로 'demo' 형식에 [Serializable] 특성을 추가하십시오.

  1. demo 클래스에 [Serializable ()] 특성을 추가합니다.

  2. 프로젝트를 다시 빌드합니다.

표준 예외 생성자를 구현하십시오.: Microsoft.Design: public demo(String) 생성자를 이 클래스에 추가하십시오.

  • public demo (String s) : base(s) { } 생성자를 demo 클래스에 추가합니다.

표준 예외 생성자를 구현하십시오.: Microsoft.Design: public demo(String, Exception) 생성자를 이 클래스에 추가하십시오.

  • public demo (String s, Exception e) : base(s, e) { } 생성자를 demo 클래스에 추가합니다.

표준 예외 생성자를 구현하십시오.: Microsoft.Design: protected demo(SerializationInfo, StreamingContext) 생성자를 이 클래스에 추가하십시오.

  1. Class1.cs 파일의 시작 부분에 using System.Runtime.Serialization; 코드를 추가합니다.

  2. 그런 다음 protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo. 생성자를 추가합니다.

  3. 프로젝트를 다시 빌드합니다.

표준 예외 생성자를 구현하십시오.: Microsoft.Design: public demo() 생성자를 이 클래스에 추가하십시오.

  1. public demo () : base() { } 생성자를 demo 클래스에 추가합니다.

  2. 프로젝트를 다시 빌드합니다.

식별자에는 올바른 접미사를 사용해야 합니다.: Microsoft.Naming: 'testCode.demo'가 'Exception'으로 끝나도록 이름을 바꾸십시오.

  • 클래스의 이름과 생성자를 DemoException으로 변경합니다.

식별자는 정확한 대/소문자를 사용해야 합니다.: Microsoft.Naming: 네임스페이스 이름 'testCode'의 대/소문자를 수정하십시오.

  • testCode 네임스페이스의 대/소문자를 TestCode로 변경합니다.

식별자는 정확한 대/소문자를 사용해야 합니다.: Microsoft.Naming: 멤버 이름 'item'의 대/소문자를 수정하십시오.

  • 멤버 이름을 Item으로 변경합니다.

어셈블리에는 올바른 강력한 이름을 사용해야 합니다.: 강력한 이름 키로 'ManagedDemo'를 서명하십시오.

  1. 프로젝트 메뉴에서 ManagedDemo 속성을 클릭합니다.

    프로젝트 속성이 나타납니다.

  2. 서명을 클릭합니다.

  3. 어셈블리 서명 확인란을 선택합니다.

  4. 강력한 이름 키 파일 선택 목록에서 <새로 만들기...>를 선택합니다.

    강력한 이름 키 만들기 대화 상자가 나타납니다.

  5. 키 파일 이름에 TestKey를 입력합니다.

  6. 암호를 입력한 다음 확인을 클릭합니다.

  7. 파일 메뉴에서 선택한 항목 저장을 클릭한 다음 속성 페이지를 닫습니다.

  8. 프로젝트를 다시 빌드합니다.

코드 분석 경고 제외

코드 오류 경고를 제외하려면

  1. 오류 목록에서 나머지 경고를 선택하고 마우스 오른쪽 단추를 클릭한 다음 메시지 표시 안 함을 선택합니다.

  2. 프로젝트를 다시 빌드합니다.

    경고나 오류가 표시되지 않고 프로젝트가 빌드됩니다.