Пример #1
0
        protected override BuildResult DoBuild(IProgressMonitor monitor, ConfigurationSelector configuration)
        {
            // Handle pending events to ensure that files get saved right before the project is built
            DispatchService.RunPendingEvents();

            // Build projects this project is depending on
            if (alreadyBuiltProjects.Contains(ItemId))
            {
                return new BuildResult()
                       {
                           FailedBuildCount = 1, CompilerOutput = "Circular dependency detected!"
                       }
            }
            ;

            alreadyBuiltProjects.Add(ItemId);

            BuildResult bs;

            foreach (var prj in DependingProjects)
            {
                if ((bs = prj.Build(monitor, configuration)) == null || bs.Failed)
                {
                    return bs ?? new BuildResult {
                               FailedBuildCount = 1
                    }
                }
            }
            ;

            alreadyBuiltProjects.Remove(ItemId);

            return(ProjectBuilder.CompileProject(monitor, this, configuration));
        }