/// <summary>
        /// Application entry point.
        /// </summary>
        /// <param name="arguments">Command line arguments.</param>
        private static void Main(string[] arguments)
        {
            try
            {
                BuildSystemModule executingModule;
                string[]          executingModuleArguments;
                if (arguments.Length > 0)
                {
                    executingModuleArguments = arguments.SubArray(1);
                    switch (arguments[0])
                    {
                    case "--generate-project-files":
                        executingModule = new ProjectGenerator.ProjectGeneratorModule();
                        break;

                    default:
                        executingModuleArguments = arguments;
                        goto case "--generate-project-files";
                    }
                }
                else
                {
                    executingModule          = new ProjectGenerator.ProjectGeneratorModule();
                    executingModuleArguments = arguments;
                }

                Environment.Exit(executingModule.Execute(executingModuleArguments));
            }
            catch (BuildSystemException exception)
            {
                Console.Error.WriteLine("Internal unhanded error was caught while running the Build System:");
                Console.Error.WriteLine(exception.Message);
            }
#if !DEBUG
            // We need Visual Studio to debug break when the exception is thrown, not just silently shut down.
            catch (Exception Exception)
            {
                Console.Error.WriteLine("Unhanded error was caught while running the Build System:");
                Console.Error.WriteLine(Exception.ToString());
            }
#endif  // if !DEBUG
            Environment.Exit(1);
        }
        /// <summary>
        /// Application entry point.
        /// </summary>
        /// <param name="arguments">Command line arguments.</param>
        private static void Main(string[] arguments)
        {
            try
            {
                BuildSystemModule executingModule;
                string[] executingModuleArguments;
                if (arguments.Length > 0)
                {
                    executingModuleArguments = arguments.SubArray(1);
                    switch (arguments[0])
                    {
                        case "--generate-project-files":
                            executingModule = new ProjectGenerator.ProjectGeneratorModule();
                            break;

                        default:
                            executingModuleArguments = arguments;
                            goto case "--generate-project-files";
                    }
                }
                else
                {
                    executingModule = new ProjectGenerator.ProjectGeneratorModule();
                    executingModuleArguments = arguments;
                }

                Environment.Exit(executingModule.Execute(executingModuleArguments));
            }
            catch (BuildSystemException exception)
            {
                Console.Error.WriteLine("Internal unhanded error was caught while running the Build System:");
                Console.Error.WriteLine(exception.Message);
            }
            #if !DEBUG
            // We need Visual Studio to debug break when the exception is thrown, not just silently shut down.
            catch (Exception Exception)
            {
                Console.Error.WriteLine("Unhanded error was caught while running the Build System:");
                Console.Error.WriteLine(Exception.ToString());
            }
            #endif  // if !DEBUG
            Environment.Exit(1);
        }