internal FileCopyList CopyToOutput(string condition)
{
if(_copyToTargets == null) {
_copyToTargets = new Dictionary<ProjectTargetElement, FileCopyList>();
}
var itemGroup = LookupItemGroup(condition);
var target = LookupTarget("AfterBuild", condition, true);
return _copyToTargets.GetOrAdd(target, () => new FileCopyList(s => {
// check to see if the file is here already
var key = (condition + "+" + s).ToLower();
if(_copyToTargetsDuplicateCheck.Contains( key ) ) {
return;
}
_copyToTargetsDuplicateCheck.Add(key);
// copy it using a task
var tsk = target.AddTask("Copy");
tsk.SetParameter("SourceFiles", s);
tsk.SetParameter("DestinationFolder", "$(TargetDir)");
tsk.SetParameter("SkipUnchangedFiles", "true");
// and if it's a win8 or phone8 app, make an item for it too.
var item = itemGroup.AddItem("None", s);
if (_rt_or_phone_check_hack_ == null) {
var rt = Pivots["TargetApplicationType"].Conditions["WinRT"];
var wp8 = Pivots["TargetApplicationType"].Conditions["Phone8"];
_rt_or_phone_check_hack_ = "({0}) OR ({1})".format(rt, wp8);
//_rt_or_phone_check_hack_ = "'$(TargetApplicationType)' == 'WinRT' Or '$(TargetApplicationType)' == 'Phone8'";
}
item.Condition = _rt_or_phone_check_hack_;
item.AddMetadata("DeploymentContent", "true");
}));
}