private static IEnumerable <string> GetProjectReferenceDependencyFilePathsRecursive_Internal(this ProjectFileModel projectFileModel, string projectFilePath, HashSet <string> pathAccumulator) { var dependencyProjectFilePaths = projectFileModel.GetProjectReferenceDependencyFilePaths(projectFilePath); foreach (var dependencyProjectFilePath in dependencyProjectFilePaths) { if (!pathAccumulator.Contains(dependencyProjectFilePath)) { pathAccumulator.Add(dependencyProjectFilePath); yield return(dependencyProjectFilePath); } var dependencyProjectFile = ProjectFileSerialization.Deserialize(dependencyProjectFilePath); var dependencyDependencyProjectFilePaths = dependencyProjectFile.GetProjectReferenceDependencyFilePathsRecursive(dependencyProjectFilePath); foreach (var dependencyDependencyProjectFilePath in dependencyDependencyProjectFilePaths) { if (!pathAccumulator.Contains(dependencyDependencyProjectFilePath)) { pathAccumulator.Add(dependencyDependencyProjectFilePath); yield return(dependencyDependencyProjectFilePath); } } } }
public ProjectFileModel Deserialize(string projectFilePath) { var projectFile = ProjectFileSerialization.Deserialize(projectFilePath); return(projectFile); }