<_CLRTestNeedsToRun Condition=" '$(_CLRTestNeedsToRun)' == '' ">true <_CLRTestBuildsExecutable Condition=" '$(_CLRTestBuildsExecutable)' == '' ">true true <_CLRTestNeedsProjectToRun Condition=" '$(_CLRTestNeedsProjectToRun)' == '' ">false 100 false parseBool = s => { bool value; var success = bool.TryParse(s, out value); if (success) return value; return false; }; var items = ArgumentItems.Select(i => new { Item=i, HasParam=parseBool(i.GetMetadata("HasParam"))}); var noArg = items.Where(i => !i.HasParam).Select(i => new { Identity=i.Item.ItemSpec}); var haveArg = items.Where(i => i.HasParam).Select(i => new { Identity=i.Item.ItemSpec, Name=i.Item.GetMetadata("ParamName")}); ParamList = haveArg.Aggregate("", (s,i) => string.Format("{0} [-{1} {2}]", s, i.Identity, i.Name)) + noArg.Aggregate("", (s,i) => string.Format("{0} [-{1}]", s, i.Identity)); ]]>