private static void AddAllDependencies(AssemblyLoader assemblyLoader, AssemblyDependencies assemblyDependencies, IGraph<string> graph, string assemblyName) { if (graph.Edges.Select(v => v.Parent).Contains(assemblyName)) return; assemblyLoader.RefeflectionOnly(assemblyName); if (assemblyLoader.AssemblyLoaded) { assemblyDependencies.Analyse(assemblyLoader.Assembly); graph.AddEdges(assemblyLoader.Name, assemblyDependencies.DirectDependencies); foreach (var dependency in assemblyDependencies.DirectDependencies) { AddAllDependencies(assemblyLoader, assemblyDependencies, graph, dependency); } } else { graph.AddEdges(assemblyName, new List<string>()); //Console.WriteLine(" Assembly failed to load: {0}", assemblyName); } }