void Setup() { try { if (Program.UninstallMode && SetupManager.Steps.All(s => s.Status == SetupStatus.Uninstalled)) { MessageBox.Show(this, @"Server is not installed, nothing to uninstall.", @"Done", MessageBoxButtons.OK, MessageBoxIcon.Information); Environment.Exit(0); } if (Program.UninstallMode || SetupManager.Steps.Any(s => s.Status != SetupStatus.Installed)) { // we wait here until setup is complete var result = new SetupForm().ShowDialog(this); if (result == DialogResult.Abort) Environment.Exit(0); } // raise priority to make server more responsive (it does not eat CPU though!) Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.AboveNormal; } catch (Exception ex) { Log.Error(ex); ex.ShowAsMessageBox(this, @"Setup error"); } }