Visual Studio .NETプロジェクト内から、単一のプロジェクトがどのプロジェクトとdllを参照しているかを簡単に確認できます。
依存関係のグラフをプロットするために使用できる完全な依存関係ツリーを構築できるアプリケーションまたはリフレクションの使用法はありますか?
Visual Studio .NETプロジェクト内から、単一のプロジェクトがどのプロジェクトとdllを参照しているかを簡単に確認できます。
依存関係のグラフをプロットするために使用できる完全な依存関係ツリーを構築できるアプリケーションまたはリフレクションの使用法はありますか?
NDependには、依存関係マトリックスと組み合わせたインタラクティブな依存関係グラフが付属しています。NDependの無料試用版をダウンロードしてしばらく使用できます。
免責事項:私はツールチームの一員です
私は似たようなものが必要でしたが、それを行うためのツールにお金を払う(またはインストールする)ことはしたくありませんでした。プロジェクト参照を調べて、代わりにyuml.meのフレンドリーな形式でそれらを吐き出す簡単なPowerShellスクリプトを作成しました。
Function Get-ProjectReferences ($rootFolder)
{
$projectFiles = Get-ChildItem $rootFolder -Filter *.csproj -Recurse
$ns = @{ defaultNamespace = "http://schemas.microsoft.com/developer/msbuild/2003" }
$projectFiles | ForEach-Object {
$projectFile = $_ | Select-Object -ExpandProperty FullName
$projectName = $_ | Select-Object -ExpandProperty BaseName
$projectXml = [xml](Get-Content $projectFile)
$projectReferences = $projectXml | Select-Xml '//defaultNamespace:ProjectReference/defaultNamespace:Name' -Namespace $ns | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty "#text"
$projectReferences | ForEach-Object {
"[" + $projectName + "] -> [" + $_ + "]"
}
}
}
Get-ProjectReferences "C:\Users\DanTup\Documents\MyProject" | Out-File "C:\Users\DanTup\Documents\MyProject\References.txt"
(出典:yuml.me)
NDependに加えて、アセンブリ依存関係グラフを表示するためのReflector用のこのアドインを試すこともできます。
アーキテクチャ エクスプローラーを使用してソリューションを参照し、視覚化するプロジェクトと関係を選択して、選択内容から依存関係グラフを作成することにより、Visual Studio 2010 Ultimate でプロジェクトとアセンブリの依存関係グラフを作成できます。
詳細については、次のトピックを参照してください。
方法: コードからグラフ ドキュメントを生成する: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
方法: Architecture Explorer を使用してコードを検索する: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
RC ダウンロード: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a .
Visual Studio 2010 Architectural Discovery & Modeling Toolsフォーラム: http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads
Structure101はそれを行うことができます。アセンブリや名前空間でモデルを参照できます。任意のレベルで任意の依存関係をクリックすると、依存関係の原因となっているすべてのコード レベルの参照が表示されます。.NET バージョンはベータ版ですが、他の言語でも何年も使用できるようになっているため、非常に成熟しています。スクリーンショットの例を次に示します。 代替テキスト http://www.headwaysoftware.com/images/assemblies.jpg