Visual Studio에서 제로 참조 코드 목록 가져 오기
Visual Studio 2013에서 특수 코드 (메소드, 속성, 필드, ...)의 참조 수는 Code Lens 로 표시됩니다 . Visual Studio에서 사용되지 않는 (제로 참조) 코드 를 얻고 싶습니다 . 그들을 구할 방법이 있습니까?
아래 참조를 의미합니다.
아마도 당신이 무엇을하고 있는지를 달성하는 가장 쉽고 쉬운 방법은 Visual Studio와 함께 제공되는 코드 분석 도구를 사용하여 죽은 코드와 사용하지 않는 멤버를 직접 찾아가는 것입니다.
이를 위해 새 코드 분석 규칙 세트 파일 (Via File-> New-> File )을 작성 하고 왼쪽 분할 창의 일반 이 선택 되어 있는지 아래로 스크롤하여 Code Analysis Rule Set 를 찾아 파일 이름을 지정한 다음 아래 규칙 선택). 복사 할 수있는 규칙 세트 파일의 내용은 아래를 참조하여 확장명이 .ruleset 인 새 파일에 붙여 넣어 사용하십시오.
규칙 세트 파일이 제공되면 솔루션 탐색기 패널 에서 프로젝트 파일을 마우스 오른쪽 단추로 클릭 하고 특성을 선택할 수 있습니다. 프로젝트 특성 창 에서 왼쪽 패널 의 코드 분석 탭을 클릭 한 후 열기 를 클릭하여 .ruleset 파일의 위치를 찾으십시오. 솔루션 파일의 속성으로 이동하면 (프로젝트 파일이 아닌) 솔루션의 각 프로젝트에 대한 코드 분석 파일을 한 곳에서 ( 코드 분석 설정 아래) 드롭 다운을 사용하여 선택할 수 있습니다. 참고 : 그러나이 속성 창의 드롭 다운에 규칙 세트 파일이 표시 되려면 이전에 규칙 세트 파일을 찾아보아야합니다.
그런 다음 프로젝트 / 솔루션에서 코드 분석 (Via Analyze-> 솔루션에서 코드 분석 실행 -또는 Alt + F11 )을 실행하면 경고, 참조되지 않은 메소드 또는 사용하지 않는 멤버로 다시 나타납니다. 심지어 다른 곳에서는 참조가없는 메소드가 참조하는 메소드를 찾을 수도 있습니다.
그러나 데드 코드에 대한 코드 분석이 잘못을 저지를 수있는 방법 중 하나는 델리게이트를 통해 메소드를 호출하고 리플렉션을 통해 참조를 '숨겨'내는 것입니다.
데드 코드를 감지하는 규칙은 구체적으로 다음과 같습니다.
- 다른 코드에서 호출되지 않은 개인 메소드 (CA1811)
- 사용하지 않은 지역 변수 (CA1804)
- 사용하지 않은 개인 필드 (CA1823)
- 사용하지 않은 매개 변수 (CA1801)
- 다른 코드에서 인스턴스화되지 않은 내부 클래스 (CA1812)
- 비트 OR 제한 스위치의 데드 코드 (C6259)
아래는 편의를 위해 위의 단계에 따라 수행 할 수있는 .ruleset 파일의 내용입니다. 아래 XML을 복사하여 notepad ++에 붙여 넣은 다음 확장명 .ruleset으로 어딘가에 저장 하고 위에서 설명한대로 찾아 사용하십시오.
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Dead Code Rules" Description=" " ToolsVersion="12.0">
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1801" Action="Warning" />
<Rule Id="CA1804" Action="Warning" />
<Rule Id="CA1811" Action="Warning" />
<Rule Id="CA1812" Action="Warning" />
<Rule Id="CA1823" Action="Warning" />
</Rules>
<Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
<Rule Id="C6259" Action="Warning" />
</Rules>
</RuleSet>
이것이 도움이되기를 바랍니다. 최고의 답변을 선택하는 것을 잊지 마십시오.
여기에 공개로 표시된 사용하지 않는 클래스를 찾는 데 사용한 수동 방법이 있습니다.
- 솔루션에서 하나의 프로젝트에 대해 모든 "공개 클래스"를 검색하고 "개인 클래스"로 바꾸십시오. "public static class"및 / 또는 "public abstract class"를 바꿔야 할 수도 있습니다.
- 모든 오류를 찾기 위해 빌드
- 빌드의 각 오류에 대해 소스 제어를 사용하여 참조 된 클래스의 파일을 복원하십시오.
- Repeat for every error until the build succeeds.
- Any remaining files that haven't been restored are likely candidates for removal.
- (optional) Rename the classes in the above files and do one more build to find errors.
- Do one last Search for the name of the class you want to remove to confirm there aren't any instances of it being used in reflection or magic strings.
- Remove the identified unused class files.
- Repeat for each solution project you want to clean.
Note: If you don't follow the one class per file rule, this will require a lot more work. Also, any API service endpoints you will need to verify that it is not being used by any external projects.
참고URL : https://stackoverflow.com/questions/30974433/get-list-of-zero-reference-codes-in-visual-studio
'programing tip' 카테고리의 다른 글
매달려있는 이미지 란 무엇이며 사용되지 않은 이미지는 무엇입니까? (0) | 2020.08.04 |
---|---|
HTML5 캔버스에 SVG 파일 그리기 (0) | 2020.08.04 |
파이썬에서 반복자를 재설정 할 수 있습니까? (0) | 2020.08.04 |
Mercurial에서 특정 버전의 파일을 얻는 방법은 무엇입니까? (0) | 2020.08.03 |
JavaScript로 길게 누르시겠습니까? (0) | 2020.08.03 |