/// <summary> /// Initializes a new instance of the <see cref="BuildTasks"/> class. /// </summary> /// <param name="tfsurl">The tfsurl.</param> /// <param name="solutionName">Name of the solution.</param> public BuildTasks(BuildArgs buildArgs) { buildArgs.Validate(); // Initialize this.tfsurl = buildArgs.TFSUrl; this.modifiedSolutionName = buildArgs.ModifiedSolutionName; // CreateUniqueBuildDirectory(buildArgs.SolutionName, buildArgs.TFSWorkingPath); // TFS log files this.teamfoundationLogFilePath = Path.Combine(buildArgs.DeploymentLogPath, string.Concat(this.modifiedSolutionName, Constants.LogsFolderExtension), string.Concat(this.modifiedSolutionName, Constants.TFSLogIdentifier, Constants.LogExtension)); // Default workspace folder this.dedicatedWorkspacePath = Path.Combine(buildArgs.TFSWorkingPath, this.modifiedSolutionName); // MSbuild files this.msbuildLogFilePath = Path.Combine(buildArgs.DeploymentLogPath, string.Concat(this.modifiedSolutionName, Constants.LogsFolderExtension), string.Concat(this.modifiedSolutionName, Constants.MSBuildLogIdentifier, Constants.LogExtension)); this.msbuildDeploymentFolder = Path.Combine(this.dedicatedWorkspacePath, Constants.DeploymentCodeFolderName); this.packagesFolder = Path.Combine(this.dedicatedWorkspacePath, Constants.AzurePackagesFolderName); // create required folder-setup this.CreateRequiredFolders(); // Now intialize log stream to log file this.logStreamWriter = File.AppendText(this.teamfoundationLogFilePath); this.logStreamWriter.WriteLine(string.Format("Deployment process started at {0}", DateTime.Now)); }