Exemplo n.º 1
0
        public Solution([NotNull] EnvDTE.Solution solution)
        {
            _solution = solution;

            Projects = _solution.GetProjects()
                       .Select(project => new Project(this, project))
                       .Where(project => project.IsVsProject)
                       .OrderBy(project => project.Name)
                       .ToArray();

            foreach (var project in Projects)
            {
                if (project == null)
                {
                    continue;
                }

                foreach (var dependency in project.GetProjectReferences())
                {
                    Debug.Assert(dependency != null);
                    dependency.SourceProject?.ReferencedBy.Add(project);
                }
            }

            // Microsoft.Tools.WindowsInstallerXml.VisualStudio.OAWixProject
            WixProjects = _solution.GetProjects()
                          .Where(project => "{930c7802-8a8c-48f9-8165-68863bccd9dd}".Equals(project.Kind, StringComparison.OrdinalIgnoreCase))
                          .Select(project => new WixProject(this, project))
                          .OrderBy(project => project.Name)
                          .ToArray();
        }