public static Solution Generate(Project mainProject, IEnumerable<Project> additionalProjects) { var projects = mainProject.GetAllReferences() .Union(additionalProjects.SelectMany(x => x.GetAllReferences())) .Union(additionalProjects); var motherProject = Project.CreateEntryProject(mainProject, projects); return new Solution(new [] { motherProject, mainProject }.Union(projects)); }
private static void GenerateReferencesInner(Project project, HashSet <Project> projects) { if (!projects.Contains(project)) { projects.Add(project); foreach (var reference in project.GetAllReferences()) { GenerateReferencesInner(reference, projects); } } }
public static Solution Generate(Project mainProject, bool generateEntryProject, string outputPath, IEnumerable <Project> additionalProjects) { var projects = new[] { mainProject }.Union( mainProject.GetAllReferences() .Union(additionalProjects.SelectMany(x => x.GetAllReferences())) .Union(additionalProjects)).ToList(); if (generateEntryProject) { var motherProject = Project.CreateEntryProject(mainProject, outputPath, projects.Skip(1)); projects.Insert(0, motherProject); } return(new Solution(projects)); }
private static void GenerateReferencesInner(Project project, HashSet<Project> projects) { if(!projects.Contains(project)) { projects.Add(project); foreach(var reference in project.GetAllReferences()) { GenerateReferencesInner(reference, projects); } } }