/// <summary> /// Manipulates the files. /// </summary> /// <returns>The path to the project file</returns> private string GetNewProjectFile() { string tempPath = string.Empty; // string k2DeployFolder = string.Empty; FileHelper fileHelper = new FileHelper(); //Get the project folder string projectFolder = fileHelper.GetFolderFromPath(ProjectFilePath); LogHelper.LogMessage(" Project Folder: " + projectFolder); // Get the Project File Path string projectFile = fileHelper.GetFileNameFromPath(ProjectFilePath); LogHelper.LogMessage(" Project File: " + projectFile); LogHelper.LogMessage(" -- Getting path to a temporary folder for the K2 project files"); tempPath = fileHelper.GetTempDirectory(); TempDeployFolderPath = tempPath + @"\K2Deploy"; LogHelper.LogMessage(" Temp Folder: " + TempDeployFolderPath); LogHelper.LogMessage(" -- Cleaning up files from any previous builds"); fileHelper.DeleteDirectory(TempDeployFolderPath); LogHelper.LogMessage(" -- Copying files to the temp folder"); fileHelper.CopyFolder(projectFolder, TempDeployFolderPath); LogHelper.LogMessage(" Files copied from '" + projectFolder + "' to '" + TempDeployFolderPath + "'"); //Ensure we have access to all the files. LogHelper.LogMessage(" -- Setting ACL on folders and files in '" + TempDeployFolderPath + "'"); bool success = fileHelper.SetAcl(TempDeployFolderPath, "F", true); if (!success) throw new Exception("Failed to set ACLs on folder " + TempDeployFolderPath); //Ensure the files are all writable LogHelper.LogMessage(" -- Setting writable permissions for folder: " + TempDeployFolderPath); fileHelper.SetWritable(TempDeployFolderPath); LogHelper.LogMessage(" -- Getting the Project File Path in Temp Folder"); string newProjectFilePath = TempDeployFolderPath + @"\" + ProjectFilePath.Substring(1 + ProjectFilePath.LastIndexOf('\\')); LogHelper.LogMessage(" New Project File: " + newProjectFilePath); return newProjectFilePath; }