예제 #1
0
        private void FetchProjectReferedBy(Project project, ProjectList projects, string suffix, StreamWriter outfile, string rootName)
        {
            Console.WriteLine(string.Format("Try to find projects have directly refer to {0} from {1}", project.Name, rootName));

            foreach (Project parentProject in projects)
            {
                if (!ProcessedLinks.Contains(parentProject.Name + "-" + rootName))
                {
                    if (parentProject.ReferencedProjects.Any(p => p.Name == project.Name) || parentProject.ReferenceList.Contains(project.Name))
                    {
                        Console.WriteLine(string.Format("{0} --> {3}; project path is {2}", parentProject.Name, project.Name, parentProject.ProjectPath, suffix));
                        outfile.WriteLine(string.Format("{0} --> {3}; project path is {2}", parentProject.Name, project.Name, parentProject.ProjectPath, suffix));
                        suffix = string.Format(" {0} --> {1}", parentProject.Name, suffix);
                        ProcessedLinks.Add(parentProject.Name + "-" + rootName);
                        FetchProjectReferedBy(parentProject, projects, suffix, outfile, rootName);
                    }
                }
            }
        }
예제 #2
0
        private void GetDistinctProjects(ProjectList projects, ProjectList projectList)
        {
            // ProjectList projectList = new ProjectList();
            foreach (Project project in projects)
            {

                if (!projectList.Any(x => x.Name == project.Name))
                    projectList.Add(project);

                foreach (string refer in project.ReferenceList)
                {
                    Project tmp = new Project();
                    tmp.Name = refer;
                    if (!projectList.Any(x => x.Name == refer))
                        projectList.Add(tmp);
                }

                foreach (Project reference in project.ReferencedProjects)
                {
                    if (!projectList.Any(x => x.Name == reference.Name))
                    {
                        projectList.Add(reference);
                        GetDistinctProjects(reference.ReferencedProjects, projectList);
                    }
                }

            }
        }
예제 #3
0
        private void FetchProjectRefence( Project project, string prefix, StreamWriter outfile, bool isRoot = true)
        {
            string tempfix = string.Format("{0} - {1}", prefix, project.Name);
            string rString = string.Format("{0}: {1}", tempfix, project.ProjectPath);
            Console.WriteLine(rString);
            outfile.WriteLine(rString);

            foreach (string refer in project.ReferenceList)
            {
                rString = string.Format("{0} Assembly Refer:  {1}", tempfix, refer);
                Console.WriteLine(rString);
                outfile.WriteLine(rString);
            }
            foreach (Project reference in project.ReferencedProjects)
            {
                rString = string.Format("{0} Project Refer:  {1}", tempfix, reference.Name);
                Console.WriteLine(rString);
                outfile.WriteLine(rString);
                FetchProjectRefence(reference, tempfix, outfile, false);

            }
        }