나는 비주얼 스튜디오에서 여기 내 코드의 모든 .NET 프레임 워크 4를 대상으로하는 몇 가지 프로젝트가 2010 솔루션 코드의 라인을 계산하는 NDepend 4.1 API를 사용하고 있습니다 : 경우NDepend가 안정적인 LOC 카운트를 생성하지 않는 이유는 무엇입니까?
var servicesProvider = new NDependServicesProvider();
var projectManager = servicesProvider.ProjectManager;
var project = projectManager.CreateTemporaryProject(...);
var analysisResult = project.RunAnalysis();
var methods = analysisResult.CodeBase.Application.Methods;
var totalLoc = methods.Where(i => i.NbLinesOfCode.HasValue).Sum(i => i.NbLinesOfCode.Value);
를 I 솔루션에서이 분석을 반복적으로 실행하면 에 대해 다른 결과가 발생합니다. 솔루션이나 컴파일 된 어셈블리를 변경하지 않았더라도 마찬가지입니다. 내가 분석을 세 번 실행하면 예를 들어, 내가 좀 더 깊이 파고 totalLoc
12100의 값, 12220, 및 12075.
를 얻을 수 있습니다, 나는 analysisResult.CodeBase.Application.Methods
을 반복하고 각 방법의 이름과 NbLinesOfCode
을 쓰기 시작했습니다 텍스트 파일. 두 번의 분석 실행에서 파일을 비교할 때 대부분의 방법이 일관된 LOC 수를 보여 주지만 일부는 그렇지 않은 것으로 나타났습니다. 이 패턴을 볼 수 없으며 매번 동일한 메소드 세트가 아닌 것 같습니다.
이 이상한 동작을 일으킬 수있는 원인은 무엇입니까?
업데이트 1 : 나는 어떤 단일 어셈블리의 분석을 실행 경우에, 나는 일관된 LOC 카운트를 얻는다. 여러 어셈블리를 CreateTemporaryProject
에 전달할 때만 문제가 발생합니다.
디버그 대 릴리스 빌드? –
@AustinSalonen :'CreateTemporaryProject'를 호출 할 때, 지금 당장 디버그 어셈블리 인 어셈블리의 정확히 같은 목록을 전달하는 것에주의해야합니다. –
두 분석 사이에 어셈블리가 다시 컴파일되지 않습니까? –