/// <summary> /// Adds the this node to the build system. /// </summary> /// <param name="recursive">Flag to indicate if the addition should be recursive.</param> protected virtual void AddToMSBuild(bool recursive) { if (ProjectManager == null || ProjectManager.IsClosed) { return; // do nothing } this.ItemNode = ProjectManager.AddFileToMSBuild(this.Url); this.SetProperty((int)__VSHPROPID.VSHPROPID_IsNonMemberItem, false); if (recursive) { for (HierarchyNode node = this.FirstChild; node != null; node = node.NextSibling) { IProjectSourceNode sourceNode = node as IProjectSourceNode; if (sourceNode != null) { sourceNode.IncludeInProject(recursive); } } } }