Esempio n. 1
0
        public static void Start()
        {
            HostCore.Log.Message("Starting wizard to create a new application package.");
            PreConfigurationState preConfigurationState;
            ApplicationData       applicationData;

            do
            {
                if (!RunPreWizard(out preConfigurationState))
                {
                    return;
                }
                if (PrepareApplicationData(preConfigurationState, out applicationData))
                {
                    break; // Successfully extracted ApplicationData from the data specified in the wizard
                }
                if (
                    MessageBox.Show("Failed to start a packaging process from the data specified. Please retry.",
                                    "Packaging Initialization Failed", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error)
                    != DialogResult.Retry)
                {
                    return;
                }
            } while (true);
            PackagedApplication packagedApplication;

            if (!RunPackagingSequence(preConfigurationState, applicationData, out packagedApplication))
            {
                return;
            }
            HostCore.Log.Message("Successfully constructed a package for: " + preConfigurationState.InstallerExecutable);
            var applicationDataFile = System.IO.Path.Combine(preConfigurationState.InstallerOutputDestination,
                                                             HostCore.Configuration.Application.DefaultApplicationDataFile);

            if (!RunPostWizard(packagedApplication, applicationDataFile))
            {
                MessageBox.Show("Failed to create an application data file for the packaged application.",
                                "Unable to create application data file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                // ToDo:
                //  Ask user whether or not he wants to start the ApplicationConfigurationUtility
                //  or create a recovery utility based on ApplicationConfigurationUtility
                return;
            }
            // Start the application, if requested.
            if (preConfigurationState.Autostart)
            {
                HostManager.StartProcess(applicationDataFile);
            }
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            System.Threading.Thread.CurrentThread.Name = "Main";
            var parser = new CommandlineParser(args);

            HostManager.InitializeCore();
#if !DEBUG
            try
            {
#endif
            if (parser.HasDefinitions)
            {
                ConfigureFromArgs(parser);
                HostManager.StartProcess(parser.IsDefined(CommandlineOption.ApplicationDataFile)
                                   ? parser.GetOption(CommandlineOption.ApplicationDataFile)
                                   : HostCore.Configuration.Application.DefaultApplicationDataFile);
            }
            else
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new FrmManager());
            }
#if !DEBUG
        }

        catch (Exception ex)
        {
            // ToDo: Refactor following code to use WinForm in stead of console window
            CoreBus.Log.Critical("A fatal exception occured.", ex);
            ProcessHelper.SetWindowState(WindowShowStyle.ShowNormal);
            Console.WriteLine("\r\n\r\n\r\n\r\n\r\n\r\n");
            Console.WriteLine("############################################################\r\n");
            Console.WriteLine(" A fatal exception occured, see below for more information.\r\n");
            Console.WriteLine("############################################################\r\n");
            Console.WriteLine(ex.GetType());
            Console.WriteLine(" -> " + ex.Message);
        }
#endif
            Console.WriteLine("\r\n\r\nPress any key to exit.\r\n");
            Console.ReadLine();
        }