private static void Main(string[] args) { if (Thread.CurrentThread.Name == null) { Thread.CurrentThread.Name = "Main"; Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US"); } Logger.Info("Starting IA:GD.."); ExceptionReporter.UrlStats = "https://webstats.evilsoft.net/report/iagd"; Logger.Info("Starting exception monitor for bug reports.."); Logger.Debug("Anonymous usage statistics can be seen at https://webstats.evilsoft.net/iagd"); ExceptionReporter.EnableLogUnhandledOnThread(); Uris.Initialize(Uris.EnvCloud); StartupService.Init(); #if DEBUG Test(); Uris.Initialize(Uris.EnvLocalDev); #endif // Prevent running in RELEASE mode by accident // And thus risking the live database #if !DEBUG if (Debugger.IsAttached) { Logger.Fatal("Debugger attached, please run in DEBUG mode"); return; } #endif //ParsingUIBackgroundWorker tmp = new ParsingUIBackgroundWorker(); ItemHtmlWriter.CopyMissingFiles(); Guid guid = new Guid("{F3693953-C090-4F93-86A2-B98AB96A9368}"); using (SingleInstance singleInstance = new SingleInstance(guid)) { if (singleInstance.IsFirstInstance) { Logger.Info("Calling run.."); singleInstance.ArgumentsReceived += singleInstance_ArgumentsReceived; singleInstance.ListenForArgumentsFromSuccessiveInstances(); using (ThreadExecuter threadExecuter = new ThreadExecuter()) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Logger.Info("Visual styles enabled.."); Run(args, threadExecuter); } } else { if (args != null && args.Length > 0) { singleInstance.PassArgumentsToFirstInstance(args); } else { singleInstance.PassArgumentsToFirstInstance(new string[] { "--ignore" }); } Logger.Info("Already has an instance of IA Running, exiting.."); } } Logger.Info("IA Exited"); LogManager.Shutdown(); }