public void ExtractProjects() { if (Version.Major != 14) { throw new SolutionParserException($"Not supported solution file version: {Version}"); } foreach (var line in SlnLines) { string[] lineParts = line.Split(','); if (lineParts.Length == 3 && lineParts[0].StartsWith("Project") && !lineParts[0].StartsWith(@"Project(""{2150E333-8FDC-42A3-9474-1A3956D46DE8}"")")) { try { string name = lineParts[0].Split('=')[1].Trim(' ', '"'); string relativePath = lineParts[1].Trim(' ', '"'); Uri projectUri; if (!Uri.TryCreate(SlnFileUri, relativePath, out projectUri)) { throw new SolutionParserException($"Failed to create full path for project line [{line}]"); } Guid projectUid = new Guid(lineParts[2].Trim(' ', '"')); ProjectParser project = new ProjectParser(this, name, projectUri, projectUid); projectsByUid[project.Uid] = project; projectsByName[project.Name] = project; } catch (Exception ex) { throw new SolutionParserException($"Failed to parse project entry line: [{line}]", ex); } } } }
public NugetReferenceParser(ProjectParser project, XmlNode referenceNode) : base(project, referenceNode) { Trace.Write($"NugetReference: {this}"); }
public ReferenceParser(ProjectParser project, XmlNode referenceNode) { Project = project; ReferenceNode = referenceNode; }
public AssemblyReferenceParser(ProjectParser project, XmlNode referenceNode) : base(project, referenceNode) { Trace.Write($"AssemblyReference: {this}"); }