public override void Execute()
        {
            DTE     dte     = (DTE)this.GetService(typeof(DTE));
            Project project = this.GetTargetProject(dte);

            //1. get correct parameters ("$(FeatureName)" as "FeatureX")
            string evaluatedParentFeatureName = EvaluateParameterAsString(dte, ParentFeatureName);

            Helpers2.AddVSElementToVSFeature(dte, project, File, evaluatedParentFeatureName);
        }
        private void AddElementsDefinitionToVSTemplate(DTE dte, Project project, string evaluatedParentFeatureName, string evaluatedSPDataTemplate, string evaluatedElementsTemplate, string evaluatedElementsCategory, string evaluatedElementsName, string evaluatedTargetFileName)
        {
            string elementsXmlContent = GenerateContent(evaluatedElementsTemplate, "Elements.xml");
            string spDataContent      = GenerateContent(evaluatedSPDataTemplate, "SharePointProjectItem.spdata");

            //1. create the folder for the content type, which means adding the spdata stuff to a folder in the project

            string       targetFolder      = evaluatedElementsCategory + @"\" + evaluatedElementsName;
            ProjectItems contentTypeFolder = null;
            ProjectItem  spDataItem        = Helpers2.AddFileToProject(dte, project, targetFolder, "SharePointProjectItem.spdata", spDataContent, true, false, out contentTypeFolder);

            //2. put the elements.xml in that folder
            CreatedElementFile = Helpers2.AddFile(dte, contentTypeFolder, evaluatedTargetFileName, elementsXmlContent, true, this.Open);

            if (this.DeploymentTypeIsSet)
            {
                //default deployment type is ElementManifest
                Helpers2.SetDeploymentType(CreatedElementFile, this.DeploymentType);
            }
            else
            {
                Helpers2.SetDeploymentType(CreatedElementFile, SPFileType.ElementManifest);
            }

            //Trace.WriteLine("AddElementsDefinitionAction FindProjectItemByPath " + targetFolder);
            ProjectItem elementFolder = Helpers.FindProjectItemByPath(project, targetFolder);

            //3. add the item to the selected feature or to the package
            if (!string.IsNullOrEmpty(evaluatedParentFeatureName))
            {
                //element can be added to a feature
                //Trace.WriteLine("AddElementsDefinitionAction evaluatedParentFeatureName=" + evaluatedParentFeatureName);
                Helpers2.AddVSElementToVSFeature(dte, project, elementFolder, evaluatedParentFeatureName);
            }
            else
            {
                //no featurename is given, we add the element to the package
                //Trace.WriteLine("AddElementsDefinitionAction evaluatedParentFeatureName=null");
                Helpers2.AddVSElementToVSPackage(dte, project, elementFolder);
            }

            CreatedElementFolder = elementFolder;
        }