static void FindProjectInternal(ProjectItems items, List <Project> projectList) { if (items == null) { return; } foreach (ProjectItem item in items) { try { var project = item.SubProject; if (project == null) { project = item.Object as Project; } if (project != null) { if (ProjectKind.IsSupportedProjectKind(project.Kind)) { projectList.Add(project); } FindProjectInternal(project.ProjectItems, projectList); } } catch (NotImplementedException) { } catch (NullReferenceException) { } } }
static void FindProjectInternal(ProjectItems items, List <Project> projectList) { if (items == null) { return; } foreach (ProjectItem item in items) { Project project; if (item.SubProject != null) { project = item.SubProject; } else { project = item.Object as Project; } if (project != null) { if (ProjectKind.IsSupportedProjectKind(project.Kind)) { projectList.Add(project); } FindProjectInternal(project.ProjectItems, projectList); } } }
public IEnumerable <Project> GetAllProjects() { var projectList = new List <Project>(); var dte = (DTE)ServiceProvider.GlobalProvider.GetService(typeof(DTE)); foreach (Project project in dte.Solution.Projects) { if (ProjectKind.IsSupportedProjectKind(project.Kind)) { projectList.Add(project); } FindProjectInternal(project.ProjectItems, projectList); } return(projectList); }