2016-11-07 29 views
1

Visual Studio 2015には、3つのアセンブリ(X、Y、Z)のソリューションがあります。 XはYとZの両方に依存しているため、XはYとZに依存します。Visual Studioの依存関係の検証2015

私は、YからZへの参照を作成している開発者がいないことを確認したいと思います。 レイヤーダイアグラムを作成し、名前空間ZをレイヤYの "禁止された名前空間"として設定するオプションがあります。私はYがZに依存するので、Zからオブジェクトを使用しようとすると、最初に検証エラーが発生するため、参照を作成することができます。

不正な依存関係があるかどうかを検証する方法はありますか?私。

答えて

1

代わりに、C# LINQ queries以上のコードルールを書くツールNDependを使用することもできます。

warnif count > 0 
from a in Application.Assemblies where 
    a.IsUsing("Z".MatchAssembly()) && 
    a.Name == @"Y" 
select a 

実際に、このようなルールがdependency graphまたはdependency matrixからシングルクリックで生成することができます:

NDepend genrate dependency rule

ルールは次のようになり組立Zを使用するように組み立てYを禁止する

+0

私はndependを調べて、VSが必要を満たすことができない場合には代替手段として考えています。しかし私はすでにVsを持っているのでVsを好むだろうし、プレビュー5でリリースされたライブ検証と一緒にすごくクールだ。 – JerryA

+0

NDependを試してみましたが、私があなたの例を使ってもVSと同じ機能を持っています。だから私は参照を追加することができますまた、 "Z"アセンブリから名前空間の使用が、私はまだ名前空間からいくつかを使用しようとする前に、警告はありません。 – JerryA

+0

実際には、コンパイラはこれを無駄にする名前空間を破棄し、NDependはコンパイルされたコードから依存関係を集めるため、これに気付かないでしょう。 –

関連する問題