public Task <BuildResult> Build(ProgressMonitor monitor, ConfigurationSelector configuration, bool buildReferencedTargets = false, OperationContext operationContext = null)
        {
            var slnConf = ParentSolution?.GetConfiguration(configuration);

            if (slnConf == null)
            {
                return(Task.FromResult(new BuildResult()));
            }

            //don't collect dependencies, BuildItems will do it
            var collected = new HashSet <SolutionItem> ();

            CollectBuildableEntries(collected, configuration, slnConf, false);


            return(ParentSolution.BuildItems(
                       monitor, configuration, collected, operationContext,
                       IsRoot ? GettextCatalog.GetString("Building solution {0} ({1})", Name, configuration.ToString()) : null
                       ));
        }