Exemple #1
0
        /// <summary>
        ///  Entry point called from Doorstop
        /// </summary>
        /// <param name="args">First argument is the path of the currently executing process.</param>
        public static void Main(string[] args)
        {
            _paths  = Paths.Create();
            _logger = new Logger(PathExtensions.Combine(_paths.LogsPath, "PatchLoader.log"));
            _paths.WorkshopModsPath = GetWorkshopModsPath(_paths.WorkingPath, _logger);

            _logger.Info("Detected paths:\n" + _paths);

            if (_paths.DisableMods)
            {
                _logger.Info("******** Mods loading disabled via --disableMods commandline argument. Further execution aborted ********");
                return;
            }

            if (_paths.SkipWorkshop)
            {
                _logger.Info("******** Workshop mods loading disabled via --noWorkshop commandline argument. Processing workshop mods directories will be skipped ********");
            }

            try {
                AppDomain.CurrentDomain.TypeResolve     += AssemblyResolver;
                AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolver;

                new InternalLoader(_logger, _paths)
                .Run();
            } catch (Exception e) {
                _logger.Exception(e);
            } finally {
                AppDomain.CurrentDomain.AssemblyResolve -= AssemblyResolver;
                AppDomain.CurrentDomain.TypeResolve     -= AssemblyResolver;
            }
        }