2016-10-12 1 views
1

나는 다수의, 주로 분리 된 하위 프로젝트들 사이에서 레포를 나누는 중입니다. 모든 프로젝트가 참조하는 하나의 커다란 프로젝트가 있습니다. 공유 프로젝트에서 제거 될 수있는 클래스의 후보 목록을 만들기 위해 하위 프로젝트 중 하나에서만 사용되는 공유 프로젝트의 클래스 목록을 얻는 방법을 찾고 있습니다. 최종 목표는 공유 프로젝트에 공유 코드 만 포함된다는 것입니다.NDepend를 사용하여 공유 어셈블리를 분할하는 방법?

리플렉션을 사용하여이 작업을 많이 수행 할 수 있지만 NDepend 라이센스가 있으며 이는 NDepend를 사용하여 수행 할 수 있어야하는 것처럼 보입니다. NDepend를 사용하면 어떻게 될까요?

답변

0

당신은

CQLInq code query 단일
let myAsm = Application.Assemblies.WithName("YourAsmName").Single() 
from a in Application.Assemblies where a.IsUsing(myAsm) 
select new { 
    a, 
    typesUsed = myAsm.ChildTypes.UsedBy(a) } 

등함으로써 해결할 수에이를 수 있습니다!

NDepend lists types usage

는 확실히 NDepend dependency matrix 먼저 수출 어셈블리 사용자가 를 행렬 할뿐만 아니라 도움이 될 수 있습니다. 를 행렬하는

Export Assemblies to NDepend Dependency Matrix

초 수출 어셈블리 유형은이 같은 코드 쿼리, 이 배에 불과 내보내기 결과 유형과

let myAsm = Application.Assemblies.WithName("YourAsmName").Single() 
from t in myAsm.ChildTypes select t 

수 있고 지금 당신은 할 수 모든 의존성을 탐구하고 그것들을 파헤쳐 라.

NDepend Dependency Matrix

은 물론 이러한 코드 쿼리가 정확히 쿼리 결과에 매트릭스에 필요한 것을 얻을 구체화 할 수 있습니다.

수십 개의 어셈블리와 유형이있는 경우 매트릭스로 내보내는 대신 NDepend dependency graph으로 내보내기를 시도 할 수 있지만 너무 많은 노드로 인해 복잡해질 수 있습니다. 매트릭스는 많은 노드를 처리하는 데 더 적합합니다.

+1

감사합니다. 이것은 정확히 내가 찾고 있었던 것입니다! –

+0

당신은 환영합니다 :) –

관련 문제