Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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;
        }