/// <summary> /// Creates a ProjectTargetElement representing this instance. Attaches it to the specified root element. /// </summary> /// <param name="rootElement">The root element to which the new element will belong.</param> /// <returns>The new element.</returns> internal ProjectTargetElement ToProjectTargetElement(ProjectRootElement rootElement) { ProjectTargetElement target = rootElement.CreateTargetElement(Name); rootElement.AppendChild(target); target.Condition = Condition; target.DependsOnTargets = DependsOnTargets; target.Inputs = Inputs; target.Outputs = Outputs; target.Returns = Returns; foreach (ProjectTaskInstance taskInstance in Tasks) { ProjectTaskElement taskElement = target.AddTask(taskInstance.Name); taskElement.Condition = taskInstance.Condition; taskElement.ContinueOnError = taskInstance.ContinueOnError; taskElement.MSBuildArchitecture = taskInstance.MSBuildArchitecture; taskElement.MSBuildRuntime = taskInstance.MSBuildRuntime; foreach (KeyValuePair<string, string> taskParameterEntry in taskInstance.Parameters) { taskElement.SetParameter(taskParameterEntry.Key, taskParameterEntry.Value); } foreach (ProjectTaskInstanceChild outputInstance in taskInstance.Outputs) { if (outputInstance is ProjectTaskOutputItemInstance) { ProjectTaskOutputItemInstance outputItemInstance = outputInstance as ProjectTaskOutputItemInstance; taskElement.AddOutputItem(outputItemInstance.TaskParameter, outputItemInstance.ItemType, outputItemInstance.Condition); } else if (outputInstance is ProjectTaskOutputPropertyInstance) { ProjectTaskOutputPropertyInstance outputPropertyInstance = outputInstance as ProjectTaskOutputPropertyInstance; taskElement.AddOutputItem(outputPropertyInstance.TaskParameter, outputPropertyInstance.PropertyName, outputPropertyInstance.Condition); } } } return target; }
/// <inheritdoc /> protected override ProjectElement CreateNewInstance(ProjectRootElement owner) { return(owner.CreateTargetElement(Name)); }
/// <inheritdoc /> protected override ProjectElement CreateNewInstance(ProjectRootElement owner) { return owner.CreateTargetElement(this.Name); }