1. STATIC C#분석 수행 시 Compilation 오류 발생한 경우

  1. Visual Studio Common 매크로 때문에 발생하는 오류

  2. Visual Studio 버전 문제

  3. Configration, Platform 설정이 맞지 않는 경우

<aside> 💡 NetAnalyzer.ini의 항목을 아래와 같이 수정하면 해결할 수 있습니다.

=== 기본 ===

[VERSION] VS_VERSION=Latest

SDK_VERSION=Latest /* STATIC4.9부터 지원 */

[PROPERTY] PREBUILD_PROPERTY= ANALYSIS_PROPERTY=

[COMPILATION] CONFIGURATION=Release PLATFORM=AnyCPU

[ANALYSIS] OPEN_SOLUTION=Y NEED_PREBUILD=N

[REPORT] REPORT_ALL=N

=== 수정 예시 === [VERSION] VS_VERSION=2017 /* 분석하려는 Visual Studio 버전을 지정합니다. ex) 2017, 2019, 2022, … */

[PROPERTY] PREBUILD_PROPERTY=OutPath;..\..\bin\ /* 빌드에 필요한 property를 추가 합니다. ex) OutPath, ProjectDir, … / / 해당 부분에 들어갈 내용이 경로가 아닌 메크로나 설정 값이여아 함 / ANALYSIS_PROPERTY=SolutionDir;D:\path\ / 분석에 필요한 property를 추가 합니다. ex) OutPath, ProjectDir, … / / 해당 부분에 들어갈 내용이 경로가 아닌 메크로나 설정 값이여아 함 */

/* 참고 설정 값: https://suresofttech.atlassian.net/browse/STCS-2973?focusedCommentId=196804 */

[COMPILATION] CONFIGURATION=Debug /* 분석의 configuration 지정 / PLATFORM=x64 / 분석 플랫폼 지정

[ANALYSIS] OPEN_SOLUTION=N /* 솔루션 전체를 열어 분석할지 지정 / NEED_PREBUILD=Y /* 분석기 수행전에 msbuild 수행 */

[REPORT] REPORT_ALL=Y /* 심각도가 매우 낮음, 기타인 결함도 출력 */

~4.8

NetAnalyzer.ini는 실행되는 경로에 함께 있으면 우선적으로 이 경로를 찾고, 분석 대상 솔루션 파일이 있는 폴더에 복사에서 작성하면 해당하는 ini 파일을 읽어 설정을 적용합니다.

4.9~

4.9부터 처음 분석 시 대상 프로젝트 경로에 ini 파일을 자동으로 복사해 주며 이후 이어진 분석 설정은 해당 경로에 있는 ini 파일에 의합니다. 따라서 이전 버전과 달리 프로젝트 별 분석 설정을 다르게 하고자 할 경우에 수동으로 ini 파일을 복사할 필요가 없습니다

</aside>

2. Time out으로 특정 모듈의 메트릭이 측정되지 않는 경우

아래와 같은 로그가 확인 되는 경우

[INFO ] [NetAnalyzerExecutor] [DEBUG] Set timeout as 180000 milliseconds
[INFO ] [NetAnalyzerExecutor] [INFO] [1/2] FTFIEE.Infrastructure
[INFO ] [NetAnalyzerExecutor] [DEBUG] Calculating for 68 files...
[INFO ] [NetAnalyzerExecutor] [DEBUG] The thread aborted.
[INFO ] [NetAnalyzerExecutor] [DEBUG] Thread was being aborted.
[INFO ] [NetAnalyzerExecutor] [WARNING] Timeout occurred : FTFIEE.Infrastructure

https://suresofttech.atlassian.net/browse/STCS-2875

C# 분석기 추가 기능