public override void ExecuteBuild()
    {
        int WorkingCL = P4.CreateChange(P4Env.Client, String.Format("TestP4_StrandCheckout, head={0}", P4Env.Changelist));

        LogInformation("Build from {0}    Working in {1}", P4Env.Changelist, WorkingCL);

        List <string> Sign = new List <string>();

        Sign.Add(CombinePaths(CmdEnv.LocalRoot, @"\Engine\Binaries\DotNET\AgentInterface.dll"));

        LogInformation("Signing and adding {0} build products to changelist {1}...", Sign.Count, WorkingCL);

        CodeSign.SignMultipleIfEXEOrDLL(this, Sign);
        foreach (var File in Sign)
        {
            P4.Sync("-f -k " + File + "#head");             // sync the file without overwriting local one
            if (!FileExists(File))
            {
                throw new AutomationException("BUILD FAILED {0} was a build product but no longer exists", File);
            }

            P4.ReconcileNoDeletes(WorkingCL, File);
        }
    }