private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { string newName = args.Name.Replace(" ", string.Empty).Split(',')[0].Replace('.', '_'); if (newName.EndsWith("_resources")) { AssemblyName MissingAssembly = new AssemblyName(args.Name); string locale = MissingAssembly.CultureInfo?.Name; if (LocalesManager.ExistLocale(locale)) { return(Assembly.LoadFile(LocalesManager.GetPathToLocaleLib(locale))); } return(null); } else { try { byte[] bytes = (byte[])Res.ResourceManager.GetObject(newName); return(Assembly.Load(bytes)); } catch { } } return(null); }
public App() { try { AppCurrent = Current; } catch { } if (LocalesManager.CheckResxLocales() && Environment.GetCommandLineArgs().Length == 1) { Process.Start(ResourceAssembly.Location); Application.Current.Shutdown(); return; } AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; ModulesManager.PreInitModules(); if (!Modules.SelfUpdater.Security.CheckEnvironment()) { ExitApp(); return; } if (!HandleCmdArgs()) { ExitApp(); return; } try { if (SingleInstance <App> .InitializeAsFirstInstance(Unique)) { mainInstance = true; InitApp(); } else { ExitApp(); } } catch (Exception e) { Logger.FatalError("App", e); } }