示例#1
0
        public static HashSet <string> GetReferencedSolutionFolders(this SlnProjectCollection projects)
        {
            var referencedSolutionFolders = new HashSet <string>();

            var solutionFolderProjects = projects
                                         .Where(p => p.TypeGuid == ProjectTypeGuids.SolutionFolderGuid)
                                         .ToList();

            if (solutionFolderProjects.Any())
            {
                var nonSolutionFolderProjects = projects
                                                .Where(p => p.TypeGuid != ProjectTypeGuids.SolutionFolderGuid)
                                                .ToList();

                foreach (var project in nonSolutionFolderProjects)
                {
                    var solutionFolders = project.GetSolutionFoldersFromProject();
                    foreach (var solutionFolder in solutionFolders)
                    {
                        if (!referencedSolutionFolders.Contains(solutionFolder))
                        {
                            referencedSolutionFolders.Add(solutionFolder);
                        }
                    }
                }
            }

            return(referencedSolutionFolders);
        }
示例#2
0
 public static IEnumerable <SlnProject> GetProjectsNotOfType(
     this SlnProjectCollection projects,
     string typeGuid)
 {
     return(projects.Where(p => p.TypeGuid != typeGuid));
 }