private Project( ProjectCollection projectCollection, ISolution solution, ProjectInSolution projectInSolution, Microsoft.Build.Evaluation.Project project, IMsBuildParsingConfiguration msBuildParsingConfiguration) { _projectCollection = projectCollection; Solution = solution; _msBuildParsingConfiguration = msBuildParsingConfiguration; Name = projectInSolution.ProjectName; BuildConfigurations = projectInSolution.ProjectConfigurations.Values.Select(c => new BuildConfiguration(c.ConfigurationName, c.PlatformName)).Distinct().ToArray(); Advanced = new AdvancedProject(this, project, projectInSolution); Guid = Guid.Parse(projectInSolution.ProjectGuid); NuGetPackages = BuildNuGetPackages(NuGetPackagesFile).ToArray(); _classifiedReferences = new Lazy <ClassifiedReferences>(() => ClassifyReferences(project, NuGetPackages, solution)); ProjectItems = BuildProjectItems(project.ItemsIgnoringCondition).ToArray(); ConfigurationProjectItem = BuildConfigurationProjectItem(); _projectXml = new Lazy <XDocument>(() => XDocument.Load(ProjectFile.FullName)); }
public ISolution Load(string solutionPath, IMsBuildParsingConfiguration msBuildParsingConfiguration) { if (!_file.Exists(solutionPath)) { throw new SolutionNotFoundException(solutionPath); } return(Solution.Load(solutionPath, msBuildParsingConfiguration)); }
private Solution(string solutionPath, IMsBuildParsingConfiguration msBuildParsingConfiguration) { _solutionPath = solutionPath; Name = Path.GetFileNameWithoutExtension(solutionPath); SolutionDirectory = Wrapper.Wrap(new DirectoryInfo(Path.GetDirectoryName(solutionPath).AssertNotNull())); _solutionFile = SolutionFile.Parse(solutionPath); Projects = _solutionFile.ProjectsInOrder.Where(p => p.ProjectType == SolutionProjectType.KnownToBeMSBuildFormat) .Select(p => Project.FromSolution(this, p, msBuildParsingConfiguration)) .ToArray(); BuildConfigurations = _solutionFile.SolutionConfigurations.Select(c => new BuildConfiguration(c.ConfigurationName, c.PlatformName)).ToArray(); }
public static Project FromSolution( ISolution solution, ProjectInSolution projectInSolution, IMsBuildParsingConfiguration msBuildParsingConfiguration) { var projectCollection = new ProjectCollection(); var msBuildProject = new Microsoft.Build.Evaluation.Project( projectInSolution.AbsolutePath, null, null, projectCollection, ProjectLoadSettings.IgnoreMissingImports); var project = new Project( projectCollection, solution, projectInSolution, msBuildProject, msBuildParsingConfiguration); return(project); }
public static Solution Load(string solutionFilePath, IMsBuildParsingConfiguration msBuildParsingConfiguration) { var fullPath = Path.GetFullPath(solutionFilePath); return(new Solution(fullPath, msBuildParsingConfiguration)); }