/// <summary> /// entry point ,parameter "*.sln" from path /// </summary> /// <param name="filenamepath">filepath</param> public static Module.M_DomResolvent OpenDirectory(string filenamepath) { Module.M_DomResolvent resolvent = new OpenProject.Come.Module.M_DomResolvent(); resolvent.FileName = Path.GetFileNameWithoutExtension(filenamepath);//set resolvent info resolvent.FilePath = filenamepath; List <Module.M_DomProject> projectlist = new List <OpenProject.Come.Module.M_DomProject>(); string[] projectdir = Directory.GetDirectories(Path.GetDirectoryName(filenamepath));//get project dir list XmlDocument document; foreach (string sub in projectdir) { string projectname = sub.Substring(sub.LastIndexOf("\\") + 1) + ".csproj";// string projectpath = Path.Combine(sub, projectname); if (!File.Exists(projectpath)) { continue; } document = new XmlDocument(); document.Load(projectpath);//get project "*.xml" stream Module.M_DomProject project = GetProject(document.DocumentElement, Path.GetDirectoryName(projectpath)); project.FileName = Path.GetFileNameWithoutExtension(projectpath); project.FilePath = projectpath; projectlist.Add(project); } resolvent.ProjectCollection = projectlist; return(resolvent); }
//get project reflection info private static void GetReflectionAssemblyList(XmlNode documentelement, Module.M_DomProject proj) { XmlNode item = documentelement.ChildNodes[3];//reflection assembly list foreach (XmlNode node in item.ChildNodes) { string[] sub = node.Attributes["Include"].Value.Split(','); if (sub.Length > 0) { proj._reflection.Add(sub[0]); } } }