public ProjectTargetElement AddContainsTaskDefinition()
{
// add the startup/init tasks (and the task for the Contains function)
var task = Xml.AddUsingTask(SafeName + "_Contains", @"$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll", null);
task.TaskFactory = "CodeTaskFactory";
var pgroup = task.AddParameterGroup();
pgroup.AddParameter("Text", "false", string.Empty, "System.String");
pgroup.AddParameter("Library", "false", "true", "System.String");
pgroup.AddParameter("Value", "false", "true", "System.String");
pgroup.AddParameter("Result", "true", string.Empty, "System.String");
var body = task.AddUsingTaskBody(string.Empty, string.Empty);
// thank you.
body.XmlElement().Append("Code").InnerText = @"Result = ((Text ?? """").Split(';').Contains(Library) ) ? Value : String.Empty;";
return FirstInitTarget;
}