protected override void Run()
        {
            Dispatcher = Dispatcher.CurrentDispatcher;

            var model     = new BootstrapperApplicationModel(this);
            var viewModel = new MainWindowModel(model);
            var view      = new MainWindow(viewModel);

            model.SetWindowHandle(view);
            Engine.Detect();
            if (NotUninstallingDuringUpgrade(model))
            {
                view.Show();
            }
            Dispatcher.Run();
            Engine.Quit(model.FinalResult);
        }