/// <summary> /// Lists all of the projects included in the solution, recursing as necessary to extract the /// projects from the solution folders. /// Internal for testing. /// </summary> private IList <Project> GetSolutionProjects() { List <Project> result = new List <Project>(); var rootProjects = _solution.Projects; foreach (Project item in rootProjects) { // If it's a folder, search projects under it. if (item.Kind == EnvDTE.Constants.vsProjectKindSolutionItems) { result.AddRange(GetSolutionFolderProjects(item)); } // Skipping unsupported projects. else if (ProjectHelper.IsValidSupported(item)) { result.Add(item); } } return(result); }