コード例 #1
0
 private List<string> BuildListOfProjectsNotInASolutionFolder(IEnumerable<string> csprojLines)
 {
     var unNestedProjects = new List<string>();
     foreach(var line in csprojLines) {
         var csprojLine = new SolutionFileProjectEntry(line);
         if(!NestedProjectCollection.NestedProjects.Contains(csprojLine.ProjectGuid)) {
             unNestedProjects.Add(csprojLine.ProjectGuid);
         }
     }
     return unNestedProjects;
 }
コード例 #2
0
        private void ProcessProjectEntryLines(string rootPath, IEnumerable<string> lines)
        {
            foreach (var line in lines){
                var projectLine = new SolutionFileProjectEntry(line);
                var fullPath = rootPath + projectLine.RelativePath;
                var lang = MapExtensionToLanguage(projectLine.ProjectFileExtension);

                IProjectFileParser parser;
                switch (lang){
                    case ProjectLanguageTypes.Cs:
                        parser = new CsProjFileParser();
                        break;
                    case ProjectLanguageTypes.Cpp:
                        parser = new CppProjFileParser();
                        break;
                    case ProjectLanguageTypes.Unknown:
                    default:
                        throw new ArgumentOutOfRangeException();
                }
                var project = new Project{
                    Name = projectLine.Name,
                    RelativePath = projectLine.RelativePath,
                    FileExtension = projectLine.ProjectFileExtension,
                    ProjectGuid = projectLine.ProjectGuid,
                    ProjectLanguage = lang,
                };
                Projects.Add(project);
                project.FullPath = fullPath;

                parser.Parse(project.FullPath, project);
            }
        }