public ItemConfiguration AddConfiguration(string name, string sourceName, bool createChildConfigurations) { ItemConfiguration conf = entry.CreateConfiguration(name, ConfigurationKind.Blank); if (sourceName != null) { ItemConfiguration sc = configurations [sourceName]; if (sc != null) { conf.CopyFrom(sc, true); } else { sourceName = null; } } if (entry is Solution) { SolutionConfiguration cc = (SolutionConfiguration)conf; foreach (ConfigurationData data in children) { SolutionConfigurationEntry ce; if (sourceName != null) { ce = cc.GetEntryForItem((SolutionItem)data.Entry); } else { ce = cc.AddItem((SolutionItem)data.Entry); } if (createChildConfigurations) { ce.ItemConfiguration = name; if (data.Configurations [name] == null) { data.AddConfiguration(name, sourceName, createChildConfigurations); } } else if (sourceName == null) { if (data.Configurations.Count > 0) { ce.ItemConfiguration = data.Configurations [0].Id; } } } } configurations.Add(conf); if (ConfigurationsChanged != null) { ConfigurationsChanged(this, null); } return(conf); }
public static ItemConfiguration CloneConfiguration(this IConfigurationTarget target, ItemConfiguration configuration, string newId) { var clone = target.CreateConfiguration(newId, ConfigurationKind.Blank); clone.CopyFrom(configuration); return(clone); }