/// <summary> /// Do any application wide initialization /// </summary> /// <param name="e"></param> protected override void OnStartup(StartupEventArgs e) { #if !DEBUG // setup handler for any unexpected exceptions // unhandled exceptions on the UI thread Application.Current.DispatcherUnhandledException += new DispatcherUnhandledExceptionEventHandler(AppDispatcherUnhandledException); // any other unhandled exception AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(AppDomainUnhandledException); #endif // let frame do anything it needs to do base.OnStartup(e); // Initialize embedded assembly loading and complete startup initialization. // Make deploying and sharing easier by supporting the embedding of most // resources/assemblies instead of having many small assemblies without // requiring building as 1 giant assembly. LibZResolver.Startup(() => { // enable Sentry error reporting only when enabled in config file errorTracking = new AppErrorTracking("TRUE".Equals(GetAppSetting("ReportErrors", "True"), StringComparison.InvariantCultureIgnoreCase)); EnableWpfBindingErrors(); IntializeDatabaseRepository(); }); }
/// <summary>Loads the plugins.</summary> private void LoadPlugins() { var catalog = new AggregateCatalog( LibZResolver.GetCatalogs( LibZResolver.RegisterMultipleFileContainers(".\\*.libzcodec"))); using (catalog) { var container = new CompositionContainer(catalog); container.SatisfyImportsOnce(this); } }
private static int Main(string[] args) { try { return(LibZResolver.Startup(() => { var program = new LibZ.Tool.Program(); return program.Run(args); })); } catch (Exception e) { Console.WriteLine("Fatal initialization error"); Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message); Console.WriteLine(e.StackTrace); Console.ReadLine(); return(-1); } }
// Warning, do not create any static scoped variables and delay // initialization of instance variables in App class until we // initialize our DLL container support (libz) static DllResolver() { try { LibZResolver.RegisterFileContainer("TEMS.libz", optional: false); /* * LibZResolver.RegisterFileContainer("Logging.libz", optional: false); * LibZResolver.RegisterFileContainer("UI.libz", optional: false); * LibZResolver.RegisterFileContainer("DB.libz", optional: false); * LibZResolver.RegisterFileContainer("Async.libz", optional: false); */ } catch (Exception e) { System.Console.Error.WriteLine("Incomplete installation, missing required files! Program Aborting!"); System.Console.Error.WriteLine(e); MessageBox.Show("Incomplete installation, missing required files! Program Aborting!\n\n" + e.ToString(), caption: "Installation corrupt - Aborting!", button: MessageBoxButton.OK, icon: MessageBoxImage.Error); System.Environment.Exit(-1); } }