/// <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; } }