public void MarkAllProductsComplete() { if (_installHelper.IsRebootNeeded) { Helper.ShowErrorMessageAndExit("Reboot the system and restart the tool"); } try { foreach (var keyvalue in _productControlMap) { keyvalue.Value.UpdateStatus("Finished", true); } _installHelper.LogInformation("All products installed successfully"); _installHelper.Dispose(); } catch (Exception ex) { TraceHelper.Tracer.WriteTrace(ex.ToString()); _installHelper.LogInformation(ex.ToString()); _installHelper.Dispose(); } if (Helper.IisVersion < 7) { _worker = new BackgroundWorker(); _worker.DoWork += (object doWorkSender, DoWorkEventArgs doWorkEventArgs) => { this.Invoke(new MethodInvoker(delegate() { this.busyPictureBox.Visible = this.busyMessageLabel.Visible = true; this.busyMessageLabel.Text = "Installing DacFx and Upgrading Web Deploy to 3.6. Please wait"; })); var msiArray = Helper.Is64Bit ? MigrationConstants.DacFxMsiArray64bit : MigrationConstants.DacFxMsiArray32bit; foreach (var id in msiArray) { string path = Helper.GetMsiFile(string.Format(MigrationConstants.DacfxUrlFormat, id), id + ".msi"); Helper.ExecuteFile(string.Format(" /q /i \"{0}\"", path)); } var webDeploy = Helper.Is64Bit ? MigrationConstants.WebDeployMSI64 : MigrationConstants.WebDeployMSI32; string filepath = Helper.GetMsiFile(webDeploy, "webdeploy3.6beta.msi"); Helper.ExecuteFile(string.Format(" /q /i \"{0}\"", filepath)); }; _worker.RunWorkerCompleted += (object runWorkerCompletedSender, RunWorkerCompletedEventArgs runWorkerCompletedEventArgs) => { // Hide busy animation. this.busyPictureBox.Visible = this.busyMessageLabel.Visible = false; if (runWorkerCompletedEventArgs.Error != null) { Helper.ShowErrorMessageAndExit(runWorkerCompletedEventArgs.Error.Message); } this.Invoke( new MethodInvoker(delegate() { FireGoToEvent(WizardSteps.RemoteComputerInfo, null); })); }; _worker.RunWorkerAsync(); } else { this.Invoke(new MethodInvoker(delegate() { FireGoToEvent(WizardSteps.RemoteComputerInfo, null); })); } }