/// <summary> /// Ensures the packages built previously are uninstalled. /// </summary> protected override void UninstallItem(BuiltItem item) { TestTool bundle = new TestTool(item.Path, null); StringBuilder sb = new StringBuilder(); // Run silent uninstall. sb.Append("-quiet -uninstall -burn.ignoredependencies=ALL"); // Generate the log file name. string logFile = String.Format("{0}_{1:yyyyMMddhhmmss}_Cleanup_{2}.log", item.TestName, DateTime.UtcNow, Path.GetFileNameWithoutExtension(item.Path)); sb.AppendFormat(" -log {0}", Path.Combine(Path.GetTempPath(), logFile)); bundle.Arguments = sb.ToString(); bundle.Run(false); }
/// <summary> /// Executes the bundle with optional arguments. /// </summary> /// <param name="expectedExitCode">Expected exit code.</param> /// <param name="mode">Install mode.</param> /// <param name="arguments">Optional arguments to pass to the tool.</param> /// <returns>Path to the generated log file.</returns> private string RunBundleWithArguments(int expectedExitCode, MSIExec.MSIExecMode mode, params string[] arguments) { TestTool bundle = new TestTool(this.Bundle, null); StringBuilder sb = new StringBuilder(); // Be sure to run silent. sb.Append(" -quiet"); // Generate the log file name. string logFile = Path.Combine(Path.GetTempPath(), String.Format("{0}_{1:yyyyMMddhhmmss}_{3}_{2}.log", this.TestName, DateTime.UtcNow, Path.GetFileNameWithoutExtension(this.Bundle), mode)); sb.AppendFormat(" -log \"{0}\"", logFile); // Set operation. switch (mode) { case MSIExec.MSIExecMode.Modify: sb.Append(" -modify"); break; case MSIExec.MSIExecMode.Repair: sb.Append(" -repair"); break; case MSIExec.MSIExecMode.Uninstall: sb.Append(" -uninstall"); break; } // Add additional arguments. if (null != arguments) { sb.Append(" "); sb.Append(String.Join(" ", arguments)); } // Set the arguments. bundle.Arguments = sb.ToString(); // Run the tool and assert the expected code. bundle.ExpectedExitCode = expectedExitCode; bundle.Run(); // Return the log file name. return(logFile); }
/// <summary> /// Executes the bundle with optional arguments. /// </summary> /// <param name="expectedExitCode">Expected exit code.</param> /// <param name="mode">Install mode.</param> /// <param name="arguments">Optional arguments to pass to the tool.</param> /// <returns>Path to the generated log file.</returns> private string RunBundleWithArguments(int expectedExitCode, MSIExec.MSIExecMode mode, params string[] arguments) { TestTool bundle = new TestTool(this.Bundle, null); StringBuilder sb = new StringBuilder(); // Be sure to run silent. sb.Append(" -quiet"); // Generate the log file name. string logFile = Path.Combine(Path.GetTempPath(), String.Format("{0}_{1:yyyyMMddhhmmss}_{3}_{2}.log", this.TestName, DateTime.UtcNow, Path.GetFileNameWithoutExtension(this.Bundle), mode)); sb.AppendFormat(" -log \"{0}\"", logFile); // Set operation. switch (mode) { case MSIExec.MSIExecMode.Modify: sb.Append(" -modify"); break; case MSIExec.MSIExecMode.Repair: sb.Append(" -repair"); break; case MSIExec.MSIExecMode.Uninstall: sb.Append(" -uninstall"); break; } // Add additional arguments. if (null != arguments) { sb.Append(" "); sb.Append(String.Join(" ", arguments)); } // Set the arguments. bundle.Arguments = sb.ToString(); // Run the tool and assert the expected code. bundle.ExpectedExitCode = expectedExitCode; bundle.Run(); // Return the log file name. return logFile; }