연습: 관리 코드의 코드 오류 분석
이 연습에서는 코드 분석 도구를 사용하여 관리되는 프로젝트의 코드 오류를 분석합니다.
이 연습에서는 코드 분석을 사용하여 .NET 관리 코드 어셈블리가 Microsoft .NET Framework 디자인 지침에 맞는지 분석하는 프로세스를 단계별로 설명합니다.
이 연습에서는 다음을 수행합니다.
- 코드 오류 경고를 분석 및 수정합니다.
사전 요구 사항
- Visual Studio Premium.
클래스 라이브러리 만들기
클래스 라이브러리를 만들려면 |
|
프로젝트 분석
관리되는 프로젝트의 코드 오류를 분석하려면
솔루션 탐색기에서 CodeAnalysisManagedDemo 프로젝트를 선택합니다.
프로젝트 메뉴에서 속성을 선택합니다.
CodeAnalysisManagedDemo 속성 페이지가 표시됩니다.
코드분석을 클릭합니다.
사용빌드에 코드 분석 (CODE_ANALYSIS 상수 정의)을 선택 합니다.
이 규칙 집합 실행 드롭다운 목록에서 Microsoft 모든 규칙을 선택합니다.
파일 메뉴에서 선택한 항목 저장을 클릭한 다음 ManagedDemo 속성 페이지를 닫습니다.
빌드 메뉴에서 ManagedDemo 빌드를 클릭합니다.
CodeAnalysisManagedDemo 프로젝트 빌드 경고가 보고 되는 코드 분석 및 출력 windows.
경우는 코드 분석 창이 나타나지 않습니다 경우에 분석 메뉴를 선택 Windows 후 코드 분석을 선택.
코드 분석 문제 해결
코드 분석 규칙 위반을 해결하려면
보기 메뉴에서 오류 목록을 클릭합니다.
선택한 개발자 프로필에 따라 보기 메뉴의 다른 창을 가리킨 다음 오류 목록을 클릭해야 할 수도 있습니다.
솔루션 탐색기에서 모든 파일 표시를 클릭합니다.
그런 다음 속성 노드를 확장하고 AssemblyInfo.cs 파일을 엽니다.
다음 표를 사용하여 경고를 해결합니다.
경고 |
경고 해결 방법 |
---|---|
CA1014: CLSCompliantAttribute로 어셈블리 표시: Microsoft.Design: 'demo'는 CLSCompliantAttribute로 표시되어야 하고 그 값은 참이어야 합니다. |
|
CA1032: 표준 예외 생성자를 구현하십시오.: Microsoft.Design: public demo(String) 생성자를 이 클래스에 추가하십시오. |
|
CA1032: 표준 예외 생성자를 구현하십시오.: Microsoft.Design: public demo(String, Exception) 생성자를 이 클래스에 추가하십시오. |
|
CA1032: 표준 예외 생성자를 구현하십시오.: Microsoft.Design: protected demo(SerializationInfo, StreamingContext) 생성자를 이 클래스에 추가하십시오. |
|
CA1032: 표준 예외 생성자를 구현하십시오.: Microsoft.Design: public demo() 생성자를 이 클래스에 추가하십시오. |
|
CA1709: 식별자는 정확한 대/소문자를 사용해야 합니다.: Microsoft.Naming: 네임스페이스 이름 'testCode'의 대/소문자를 'TestCode'(으)로 수정하십시오. |
|
CA1709: 식별자는 정확한 대/소문자를 사용해야 합니다.: Microsoft.Naming: 형식 이름 'demo'의 대/소문자를 'Demo'(으)로 수정하십시오. |
|
CA1709: 식별자는 정확한 대/소문자를 사용해야 합니다.: Microsoft.Naming: 멤버 이름 'item'의 대/소문자를 'Item'(으)로 수정하십시오. |
|
CA1710: 식별자에는 올바른 접미사를 사용해야 합니다.: Microsoft.Naming: 'testCode.demo'이(가) 'Exception'(으)로 끝나도록 이름을 바꾸십시오. |
|
CA2210: 어셈블리에는 올바른 강력한 이름을 사용해야 합니다.: 강력한 이름의 키로 'ManagedDemo'을(를) 서명하십시오. |
|
CA2237: ISerializable 형식을 SerializableAttribute로 표시하십시오.: Microsoft.Usage: 이 형식이 ISerializable을 구현할 때 'demo' 형식에 [Serializable] 특성을 추가하십시오. |
|
변경을 완료 한 후 Class1.cs 파일에 다음과 같은 모양이 됩니다.
//CodeAnalysisManagedDemo
//Class1.cs
using System;
using System.Runtime.Serialization;
namespace TestCode
{
[Serializable()]
public class DemoException : Exception
{
public DemoException () : base() { }
public DemoException(String s) : base(s) { }
public DemoException(String s, Exception e) : base(s, e) { }
protected DemoException(SerializationInfo info, StreamingContext context) : base(info, context) { }
public static void Initialize(int size) { }
protected static readonly int _item;
public static int Item { get { return _item; } }
}
}
코드 분석 경고 제외
코드 오류 경고를 제외하려면
나머지 경고 각각에 대해 다음과 같이 하십시오.
이 창에서 코드 분석 경고를 선택 합니다.
선택 작업, 다음 선택 메시지를 표시 하지 않습니다, 다음 선택 프로젝트 비 표시 오류 파일에.
자세한 내용은 방법: 메뉴 항목을 사용하여 경고 표시 안 함을 참조하십시오.
프로젝트를 다시 빌드합니다.
경고나 오류가 표시되지 않고 프로젝트가 빌드됩니다.