public static IEnumerable<Graph> FromProjectDirectory(string dir) { var projectFile = new ProjectReader().ReadProject( new FileStream(Path.Combine(dir, "project.json"), FileMode.Open), Path.GetFileName(dir), dir, new List<DiagnosticMessage>()); var lockFile = new LockFileReader().Read(Path.Combine(dir, "project.lock.json")); return lockFile.Targets.Select(t => ForTarget(projectFile, t)); }
public static bool TryGetProject(string path, out Project project, ICollection<DiagnosticMessage> diagnostics = null) { project = null; string projectPath = null; if (string.Equals(Path.GetFileName(path), ProjectFileName, StringComparison.OrdinalIgnoreCase)) { projectPath = path; path = Path.GetDirectoryName(path); } else if (!HasProjectFile(path)) { return false; } else { projectPath = Path.Combine(path, ProjectFileName); } // Assume the directory name is the project name if none was specified var projectName = PathUtility.GetDirectoryName(path); projectPath = Path.GetFullPath(projectPath); if (!File.Exists(projectPath)) { return false; } try { using (var stream = File.OpenRead(projectPath)) { var reader = new ProjectReader(); project = reader.ReadProject(stream, projectName, projectPath, diagnostics); } } catch (Exception ex) { throw FileFormatException.Create(ex, projectPath); } return true; }