ClrPlus.Scripting.MsBuild.Packaging.ProjectPlus.CopyToOutput C# (CSharp) Method

CopyToOutput() private method

private CopyToOutput ( string condition ) : FileCopyList
condition string
return FileCopyList
        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");
            }));
        }