public void Run(InvocationContext context, string project) { Styles.Load(); #if GTK var app = new Application(Platforms.Gtk); #elif WPF var app = new Application(Platforms.Wpf); #else var app = new Application(Platforms.Mac64); #endif app.Style = "PipelineTool"; PipelineSettings.Default.Load(); if (!string.IsNullOrEmpty(PipelineSettings.Default.ErrorMessage)) { var logwin = new LogWindow(); logwin.LogText = PipelineSettings.Default.ErrorMessage; app.Run(logwin); return; } #if !DEBUG try #endif { var win = new MainWindow(); var controller = PipelineController.Create(win); #if GTK Global.Application.AddWindow(win.ToNative() as Gtk.Window); #endif #if GTK && !DEBUG GLib.ExceptionManager.UnhandledException += (e) => { var logwin = new LogWindow(); logwin.LogText = e.ExceptionObject.ToString(); logwin.Show(); win.Close(); }; #endif if (!string.IsNullOrEmpty(project)) { controller.OpenProject(project); } app.Run(win); } #if !DEBUG catch (Exception ex) { PipelineSettings.Default.ErrorMessage = ex.ToString(); PipelineSettings.Default.Save(); app.Restart(); } #endif }