コード例 #1
0
        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));
        }
コード例 #2
0
        public ISolution Load(string solutionPath, IMsBuildParsingConfiguration msBuildParsingConfiguration)
        {
            if (!_file.Exists(solutionPath))
            {
                throw new SolutionNotFoundException(solutionPath);
            }

            return(Solution.Load(solutionPath, msBuildParsingConfiguration));
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        public static Solution Load(string solutionFilePath, IMsBuildParsingConfiguration msBuildParsingConfiguration)
        {
            var fullPath = Path.GetFullPath(solutionFilePath);

            return(new Solution(fullPath, msBuildParsingConfiguration));
        }