/// <summary> /// Removes a <ItemGroup> from the main project file. /// </summary> /// <param name="itemGroupToRemove"></param> /// <owner>RGoel</owner> public void RemoveItemGroup ( BuildItemGroup itemGroupToRemove ) { error.VerifyThrowArgumentNull(itemGroupToRemove, "itemGroupToRemove"); // Confirm that it's not an imported item group. error.VerifyThrowInvalidOperation(!itemGroupToRemove.IsImported, "CannotModifyImportedProjects"); // Confirm that it's actually a persisted BuildItemGroup in the current project. error.VerifyThrowInvalidOperation( (itemGroupToRemove.ParentProject == this) && (itemGroupToRemove.ItemGroupElement != null), "IncorrectObjectAssociation", "BuildItemGroup", "Project"); // Clear out the children of the BuildItemGroup. itemGroupToRemove.Clear(); XmlElement parentElement = itemGroupToRemove.ParentElement; ErrorUtilities.VerifyThrow(parentElement != null, "Why doesn't this IG have a parent XML element?"); parentElement.RemoveChild(itemGroupToRemove.ItemGroupElement); // Remove the item group from our collection. ErrorUtilities.VerifyThrow(itemGroupToRemove.ParentCollection != null, "Why doesn't this IG have a parent collection?"); itemGroupToRemove.ParentCollection.RemoveItemGroup(itemGroupToRemove); itemGroupToRemove.ClearParentProject(); this.MarkProjectAsDirty(); }