2011-01-18 2 views
10

FxCop의 전역 억압 기능을 사용하여 이전 코드에서 발견 된 규칙 위반을 억제합니다. 구식 코드 란 코드 분석을 시작하기 수년 전에 작성된 코드를 의미합니다. 새로운 코드로 위반 사항을 수정합니다. 우리는 억압을 사용하기 위해 이전 코드의 위반 사항을 한꺼번에 해결할 수 없습니다.사용하지 않거나 오래된 FxCop 메시지 억압을 식별 할 수있는 방법이 있습니까?

시간이 지남에 따라 Google의 글로벌 억제 파일이 부풀어 오릅니다. 예전의 방법으로 서명이 변경되었을 때, 이전의 억제는 더 이상 코드와 일치하지 않기 때문에 무효가됩니다. 이전의 위반을 무시하기 위해 새로운 억압을 만들었지 만 종종 이전의 SuppressMessage 속성이 남겨졌습니다.

누구나 코드와 일치하지 않는 SupressMessage 선언을 식별하는 방법을 알고 있습니까? 그 문제에 대해 아무도 억누를 수있는 위반이 없기 때문에 무효 인 SuppressMessage 속성을 식별하는 방법을 알고 있습니까?

컴파일러 또는 FxCopCmd 경고 또는 사용되지 않는 억제를 식별 할 수있는 로그 메시지가있을 수 있습니다. 그렇지 않다면 스크립트 나 VS 확장 기능을 아는 사람이 있습니까?

감사합니다.

+0

이 모든 억압을 결국 제거하기를 바랍니다. 너무 많이 사용하면 코드가 복잡해집니다. – Bernard

+0

@Bernard - 전역 차단은 클래스 파일에 포함되어 있지 않으므로 찾아야 만 해당 차단을 볼 수 있습니다. 고통은 당신이 제거하거나 바꾸고 싶은 것을 찾으려고 할 때입니다. – Pedro

+0

@ 페드로 : 맞습니다. 그러나 메서드 수준에서 경고를 표시하지 않을 수도 있습니다.이 방법은 권장하지 않습니다. – Bernard

답변

2

이 작업에는 독립형 FxCop UI 응용 프로그램을 사용할 수 있습니다. "Sources Last Run"열을 "Excluded In Source"결과 탭에 추가하십시오. 분석 후이 열은 분석 실행 중에 해당 위반이 발견되지 않은 모든 소스 내 억제에 대해 잘못된 값을 표시합니다. 결과의 신뢰성을 최대화하려면 Visual Studio에서 분석을 실행할 때 사용하는 분석에 대해 동일한 규칙 어셈블리 집합을 사용하고 있는지 확인해야합니다.

"오래된"억압이 발견되었을 때 빌드를 중단하려면, https://connect.microsoft.com/visualstudio/feedback/details/277253/add-mechanism-for-detecting-unnecessary-suppressmessageattribute-instances에 투표하는 것이 좋습니다.

+0

고마워, 지금 해보겠습니다. –

+1

링크가 끊어진 것 같아서 찾을 수 없습니다. 게시물을 업데이트 할 수 있습니까? – julealgon