Explore indirect assembly dependencies (.NET only)
When exploring assembly dependencies there are basically two types of dependencies
Direct dependencies: A type in assembly A uses a type in assembly B and so assembly A depends on assembly B.
Indirect dependencies: A type in assembly A uses a type in assembly B and a different type in assembly B uses a type in assembly C. By that assembly A indirectly depends on assembly C. The following sample illustrates this type of dependency:

Exploring and visualizing both types of dependencies is not an easy task, especially not for a bigger code base. The PathFinder tool supports you here by tracing all direct and indirect paths from a set of “source” assemblies to a set of “target” assemblies.

To start the tracing load a configuration file of the following schema:
{
    "netFramework" : "false",
    "binFolder": "D:/Workspace/Plainion/Plainion.GraphViz/bin/Debug",
    "keepInnerAssemblyDependencies": false,
    "keepSourceAssemblyClusters": false,
    "keepTargetAssemblyClusters": false,
    "sources": [ "Plainion.GraphViz.Modules.CodeInspection.*.dll" ],
    "targets": [ "Plainion.Core.dll" ],
    "relevantAssemblies": [ "Plainion.*" ]
}
- “netFramework” specifies the DotNet runtime which should be used. By default .NET is used. Set it to “true” to use .NET Framework
 - “binFolder” specifies the folder where all assemblies are located
 - “keepInnerAssemblyDependencies” specifies whether dependencies within assemblies should be part of the graph.
 - “keepSourceAssemblyClusters” specifies whether the source assemblies should be kept as clusters. If set to false a single cluster “SOURCE” will be created for all source assembly types.
 - “keepTargetAssemblyClusters” specifies whether the target assemblies should be kept as clusters. If set to false a single cluster “TARGET” will be created for all target assembly types.
 - “sources” specifies the source assemblies. Wildcards supported.
 - “targets” specifies the target assemblies. Wildcards supported.
 - “relevantAssemblies” can be used to limit the assemblies to be analyzed.
 
When clicking “Create graph” you will get a graph showing all possible paths from the source assemblies to the target assemblies.

You can then navigate and explore the graph as usual to extract concrete dependency paths like this:
