アクション 特定のプロジェクトのプロジェクト参照を確認したら 次の参照を確認します ダイアログ チームで複数のビルドを実行し 成功したビルドを採用する必要があったとします どこかに循環参照があると思うのですが どこでしょうか? プロジェクト ...

アクション
特定のプロジェクトのプロジェクト参照を確認したら、次の参照を確認します。

ダイアログ
チームで複数のビルドを実行し、成功したビルドを採用する必要があったとします。

どこかに循環参照があると思うのですが、どこでしょうか?

プロジェクトに特定の依存関係がある理由を知りたいと思ったことはありますか? 

アセンブリを削除したいですか、または、新しいテクノロジーを使用したいですか? 

このような場合、Visual Studio の依存関係グラフが役立ちます。 



アクション
[アーキテクチャ] メニューで、[依存関係グラフの生成] をクリックし、[ソリューション] をクリックします。

ダイアログ
ソリューションの依存関係グラフを生成すると、ソリューションの全体像をつかむことができます。

これにより新しい発見がある場合もあり、たいへん有用です。

たとえば、単体テストが実際はソリューションをまったくテストしていないことがすぐにわかります。実際、テストはまったく行われていません。



アクション
[凡例] で [追加] を選択し、循環参照アナライザーを選択します。

ダイアログ
このソリューションはかなり大きいため、予期しない依存関係があってもすぐにはわかりません。

しかし、循環参照アナライザーを追加すると、この依存関係を検出しやすくすることができます。 



アクション
結果として、3 つのアセンブリが強調表示されます。

ダイアログ
実際に、これらの 3 つのアセンブリは相互に参照していることがわかります。

これで大幅に時間を節約できました。後はこれを修正するだけです。



アクション
3 つのアセンブリ間のリンクを調べます。

ダイアログ
このアセンブリとこのアセンブリの間の依存関係リンクは、他のアセンブリ間のリンクよりもずっと細くなっているのがわかります。 

マウスをリンク上に移動すると、2 つの呼び出しだけでこの依存関係が作成されていることがツールヒントに示されます。つまり、この依存関係は最近追加されたようです。



アクション
疑わしい (細い) リンクをクリックし、寄与するリンクを要求します。

ダイアログ
依存関係に寄与しているものがわかると、他のアセンブリでどのメソッドがどのメソッドを呼び出しているかがすぐにわかります。ここでは、さいわいにも 1 つのメソッドだけが呼び出されているようです。

寄与するリンクを全体像に追加することによって、このメソッドからコードの他の部分へのすべてのリンクが得られます。 

このメソッドは、問題なく他のアセンブリへ移動できそうです。この判断が正しいかどうか、実際にやってみましょう。



アクション
メソッドをドラッグして呼び出しアセンブリにドロップします。これでは完全に問題を解決できないことがわかります。 

ダイアログ
静的フィールドに別のリンクがあるのがわかります。これも移動できます。



アクション
フィールドをドラッグ アンド ドロップします。これで問題が解決します。

ダイアログ
これで、先ほどの想定をテストし、正しい修正方法を見つけることができました。



アクション
F12 キーを押すか、[コードに移動] ショートカット メニュー コマンドを使用します。 

画面をグラフとコードに分割し、グラフを使用してコードに移動できるようにします。

ダイアログ
次に、コードを探すための地図としてダイヤグラムを使用して、実際に修正します。



アクション
新しいデザインの目的を説明するコメントを追加し、このダイヤグラムをプロジェクトに追加してシェルブセットに含めるか、XPS としてエクスポートして印刷します。

ダイアログ
これで、たとえばコード レビューの一部など、新しいデザインをチームと共有できます。
アクション テスト エクスプローラーが開かれ コード エディターのテスト クラスが表示され ソリューション エクスプローラーが開かれた Visual Studio 2012 にフェードインします 対話がテスト エクスプローラーにパン インしてズームします ... アクション テスト エクスプローラーが開かれ コード エディターのテスト クラスが表示され ソリューション エクスプローラーが開かれた Visual Studio 2012 にフェードインします 対話がテスト エクスプローラーにパン インしてズームします ... アクション ラボ センター > ラボ に移動します ダイアログ 今度は別のシナリオを見てみましょう テストを実行する環境を作成するとします Microsoft Test Manager を開き ラボ センター および ラボ をクリックします ... アクション 担当作業ページに 複数のファイルの変更とアクティブ タスクが表示されています 変更をクリックして 保留中の変更 に移動すると 変更されたファイルの詳細が表示されます ダイアログ コードを作成しました アクション 出力ウィンドウに ... アクション 特定のプロジェクトのプロジェクト参照を確認したら 次の参照を確認します ダイアログ チームで複数のビルドを実行し 成功したビルドを採用する必要があったとします どこかに循環参照があると思うのですが どこでしょうか? プロジェクト ... アクション 顧客がコードを入力し 任意の時点でソリューション エクスプローラーから別のファイルを開き さらにコードを入力します アクション 空の担当作業ページにクロスフェードします ダイアログ この短いビデオでは 担当作業で数分間作業するだけで ... アクセサ '%1!ls!' は インターフェイス メンバ '%2!ls!' を型 '%3!ls!' に対して実装できません 明示的なインターフェイスの実装を使用してください アクセシビリティ修飾子はこのメンバーでは許可されていません 抽象スロットには それを囲む型と常に同じ可視性があります アクセシビリティ修飾子はレコード フィールドに使用できません 表現全体にアクセシビリティを付与するには 'type R = internal .' または 'type R = private .' を使用してください