string[] additionalMetadata;
ITaskItem[] exclude;
ITaskItem[] include;
-
+ bool preserveExistingMetadata;
+
public CreateItem ()
{
}
foreach (string metadata in AdditionalMetadata) {
//a=1
string [] parts = metadata.Split (new char [] {'='}, 2, StringSplitOptions.RemoveEmptyEntries);
- if (parts.Length == 2)
- matchedItem.SetMetadata (parts [0].Trim (), parts [1].Trim ());
+ if (parts.Length == 2) {
+ string name = parts [0].Trim ();
+ string oldValue = matchedItem.GetMetadata (name);
+ if (!preserveExistingMetadata || string.IsNullOrEmpty (oldValue))
+ matchedItem.SetMetadata (name, parts [1].Trim ());
+ }
}
}
get { return include; }
set { include = value; }
}
+
+#if NET_3_5
+ public bool PreserveExistingMetadata {
+ get { return preserveExistingMetadata; }
+ set { preserveExistingMetadata = value; }
+ }
+#endif
}
}