void CreateCombineConfigurations(SolutionFolder folder)
        {
            IDictionary extendedProperties = folder.ExtendedProperties;

            CombineConfigurationSet configs = CreateCombineConfigurationSet(folder.ParentSolution, folder.IsRoot);

            configs.Active = folder.ParentSolution.DefaultConfigurationId;

            extendedProperties ["Configurations"] = configs;

            foreach (SolutionItem it in folder.Items)
            {
                if (it is SolutionFolder)
                {
                    foreach (SolutionConfiguration conf in folder.ParentSolution.Configurations)
                    {
                        CombineConfiguration      cc = configs.GetConfig(conf.Id);
                        CombineConfigurationEntry ce = new CombineConfigurationEntry(it.Name, true, conf.Id);
                        cc.Entries.Add(ce);
                    }
                    CreateCombineConfigurations((SolutionFolder)it);
                }
                else if (it is SolutionEntityItem)
                {
                    SolutionEntityItem sit = (SolutionEntityItem)it;
                    foreach (SolutionConfiguration conf in folder.ParentSolution.Configurations)
                    {
                        CombineConfiguration       cc  = configs.GetConfig(conf.Id);
                        SolutionConfigurationEntry sce = conf.GetEntryForItem(sit);
                        CombineConfigurationEntry  ce  = null;
                        if (sce == null)
                        {
                            ce = new CombineConfigurationEntry(it.Name, true, conf.Id);
                        }
                        else
                        {
                            ce = new CombineConfigurationEntry(it.Name, sce.Build, sce.ItemConfiguration);
                        }
                        cc.Entries.Add(ce);
                    }
                }
            }
        }
		void CreateCombineConfigurations (SolutionFolder folder)
		{
			IDictionary extendedProperties = folder.ExtendedProperties;
			
			CombineConfigurationSet configs = CreateCombineConfigurationSet (folder.ParentSolution, folder.IsRoot);
			configs.Active = folder.ParentSolution.DefaultConfigurationId;
			
			extendedProperties ["Configurations"] = configs;

			foreach (SolutionItem it in folder.Items) {
				
				if (it is SolutionFolder) {
					foreach (SolutionConfiguration conf in folder.ParentSolution.Configurations) {
						CombineConfiguration cc = configs.GetConfig (conf.Id);
						CombineConfigurationEntry ce = new CombineConfigurationEntry (it.Name, true, conf.Id);
						cc.Entries.Add (ce);
					}
					CreateCombineConfigurations ((SolutionFolder) it);
				}
				else if (it is SolutionEntityItem) {
					SolutionEntityItem sit = (SolutionEntityItem) it;
					foreach (SolutionConfiguration conf in folder.ParentSolution.Configurations) {
						CombineConfiguration cc = configs.GetConfig (conf.Id);
						SolutionConfigurationEntry sce = conf.GetEntryForItem (sit);
						CombineConfigurationEntry ce = null;
						if (sce == null)
							ce = new CombineConfigurationEntry (it.Name, true, conf.Id);
						else
							ce = new CombineConfigurationEntry (it.Name, sce.Build, sce.ItemConfiguration);						
						cc.Entries.Add (ce);
					}
				}
			}
		}