void ExecuteOnErrors ()
{
foreach (XmlElement onError in onErrorElements) {
if (onError.GetAttribute ("ExecuteTargets") == String.Empty)
throw new InvalidProjectFileException ("ExecuteTargets attribute is required in OnError element.");
string on_error_condition = onError.GetAttribute ("Condition");
if (!ConditionParser.ParseAndEvaluate (on_error_condition, Project)) {
LogMessage (MessageImportance.Low,
"OnError for target {0} skipped due to false condition: {1}",
Name, on_error_condition);
continue;
}
string[] targetsToExecute = onError.GetAttribute ("ExecuteTargets").Split (';');
foreach (string t in targetsToExecute)
this.project.Targets [t].Build ();
}
}