static void AddDependentAssembly(DependencyGraph<string> graph, string assemblyPath,
string referencedAssemblyName)
{
string name = Path.GetFileName(assemblyPath);
string path = Path.GetDirectoryName(assemblyPath);
string referencedPath = Path.Combine(path, referencedAssemblyName + ".dll");
if (File.Exists(referencedPath))
{
string assemblyName = Path.GetFileName(referencedPath);
graph.Add(name, assemblyName);
Assembly assembly = Assembly.ReflectionOnlyLoadFrom(referencedPath);
foreach (AssemblyName referencedAssembly in assembly.GetReferencedAssemblies())
{
string referencedName = Path.GetFileName(referencedAssembly.Name);
AddDependentAssembly(graph, assemblyName, referencedName);
}
}
}