2016-10-12 25 views
1

私は複数の、主に別々のサブプロジェクトの間でレポを分割しようとしています。すべてのプロジェクトが参照する1つの大きなプロジェクトがあります。私は、共有プロジェクトから削除できるクラスの候補リストを作成するために、サブプロジェクトの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

2番目のエクスポートあなたのアセンブリの種類は、これは、このようなコードクエリ、この回だけで輸出結果タイプで

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

することができ、今することができますすべての依存関係を調べて、それらを掘り下げてください。もちろん

NDepend Dependency Matrix

あなたがクエリ結果にマトリックス上で必要な正確に何を得るために、これらのコードのクエリを絞り込むことができます。

数十種類のアセンブリとタイプがある場合は、マトリックスにエクスポートする代わりにNDepend dependency graphにエクスポートすることができますが、ノードが多すぎると乱雑に見えます。マトリックスは多くのノードを扱うようになっています。

+1

ありがとう、これは私が探していたものです! –

+0

あなたは歓迎です:) –

関連する問題