protected override void OnStartup(StartupEventArgs e) { ErrorLogging.Initialize(); ErrorLogging.Log(string.Format("TEdit版本 {0} (CN: {1})", ErrorLogging.Version, CnVersion.ToString(3))); ErrorLogging.Log(string.Format("OS: {0}", Environment.OSVersion)); Assembly asm = Assembly.GetExecutingAssembly(); Version = FileVersionInfo.GetVersionInfo(asm.Location); try { int directxMajorVersion = DependencyChecker.GetDirectxMajorVersion(); if (directxMajorVersion < 11) { ErrorLogging.Log(string.Format("DirectX {0} 过旧. 需要 DirectX 11 及更高版本.", directxMajorVersion)); } } catch (Exception ex) { ErrorLogging.Log("无法验证DirectX版本. TEdit 可能无法正确运行."); ErrorLogging.LogException(ex); } try { DependencyChecker.CheckPaths(); } catch (Exception ex) { ErrorLogging.Log("寻找 Terraria 材质路径失败. TEdit 可能无法正确运行."); ErrorLogging.LogException(ex); } try { if (!DependencyChecker.VerifyTerraria()) { ErrorLogging.Log("寻找 Terraria 目录失败. 没有可用的材质."); } else { ErrorLogging.Log(string.Format("Terraria v{0}", DependencyChecker.GetTerrariaVersion() ?? "not found")); ErrorLogging.Log(string.Format("Terraria Data Path: {0}", DependencyChecker.PathToContent)); } // 日志文件里的内容, 暂时跳过汉化 } catch (Exception ex) { ErrorLogging.Log("Failed to verify Terraria Paths. No texture data will be available."); ErrorLogging.LogException(ex); } if (e.Args != null && e.Args.Count() > 0) { ErrorLogging.Log(string.Format("Command Line Open: {0}", e.Args[0])); this.Properties["OpenFile"] = e.Args[0]; } if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0) { string fname = "No filename given"; try { fname = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; // It comes in as a URI; this helps to convert it to a path. var uri = new Uri(fname); fname = uri.LocalPath; this.Properties["OpenFile"] = fname; } catch (Exception ex) { // For some reason, this couldn't be read as a URI. // Do what you must... ErrorLogging.LogException(ex); } } DispatcherHelper.Initialize(); TaskFactoryHelper.Initialize(); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; base.OnStartup(e); }
protected override void OnStartup(StartupEventArgs e) { ErrorLogging.Initialize(); ErrorLogging.Log($"Starting TEdit {ErrorLogging.Version}"); ErrorLogging.Log($"OS: {Environment.OSVersion}"); Assembly asm = Assembly.GetExecutingAssembly(); Version = FileVersionInfo.GetVersionInfo(asm.Location); try { int directxMajorVersion = DependencyChecker.GetDirectxMajorVersion(); if (directxMajorVersion < 11) { ErrorLogging.Log($"DirectX {directxMajorVersion} unsupported. DirectX 11 or higher is required."); } } catch (Exception ex) { ErrorLogging.Log("Failed to verify DirectX Version. TEdit may not run properly."); ErrorLogging.LogException(ex); } try { DependencyChecker.CheckPaths(); } catch (Exception ex) { ErrorLogging.Log("Failed to verify Terraria Paths. TEdit may not run properly."); ErrorLogging.LogException(ex); } try { if (!DependencyChecker.VerifyTerraria()) { ErrorLogging.Log("Unable to locate Terraria. No texture data will be available."); } else { ErrorLogging.Log($"Terraria v{DependencyChecker.GetTerrariaVersion() ?? "not found"}"); ErrorLogging.Log($"Terraria Data Path: {DependencyChecker.PathToContent}"); } } catch (Exception ex) { ErrorLogging.Log("Failed to verify Terraria Paths. No texture data will be available."); ErrorLogging.LogException(ex); } if (e.Args != null && e.Args.Count() > 0) { ErrorLogging.Log($"Command Line Open: {e.Args[0]}"); Properties["OpenFile"] = e.Args[0]; } if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0) { string fname = "No filename given"; try { fname = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; // It comes in as a URI; this helps to convert it to a path. var uri = new Uri(fname); fname = uri.LocalPath; Properties["OpenFile"] = fname; } catch (Exception ex) { // For some reason, this couldn't be read as a URI. // Do what you must... ErrorLogging.LogException(ex); } } DispatcherHelper.Initialize(); TaskFactoryHelper.Initialize(); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; base.OnStartup(e); }
protected override void OnStartup(StartupEventArgs e) { ErrorLogging.Initialize(); ErrorLogging.Log(string.Format("Starting TEdit {0}", ErrorLogging.Version)); ErrorLogging.Log(string.Format("OS: {0}", Environment.OSVersion)); Assembly asm = Assembly.GetExecutingAssembly(); Version = FileVersionInfo.GetVersionInfo(asm.Location); if (!DependencyChecker.VerifyDotNet()) { MessageBox.Show("Please install .Net 4.0", "Missing .Net", MessageBoxButton.OK, MessageBoxImage.Stop); ErrorLogging.LogException(new ApplicationException("MISSING .NET")); Shutdown(); } else { ErrorLogging.Log(".Net >= 4.0"); } if (!DependencyChecker.VerifyXna()) { MessageBox.Show("Please install XNA Framework 4.0", "Missing XNA", MessageBoxButton.OK, MessageBoxImage.Stop); ErrorLogging.LogException(new ApplicationException("MISSING XNA")); Shutdown(); } else { ErrorLogging.Log("XNA 4.0"); } if (!DependencyChecker.VerifyTerraria()) { ErrorLogging.Log("Unable to locate Terraria. No texture data will be available."); } else { ErrorLogging.Log(string.Format("Terraria Data Path: {0}", DependencyChecker.PathToContent)); } if (e.Args != null && e.Args.Count() > 0) { ErrorLogging.Log(string.Format("Command Line Open: {0}", e.Args[0])); this.Properties["OpenFile"] = e.Args[0]; } if (AppDomain.CurrentDomain.SetupInformation.ActivationArguments != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData != null && AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData.Length > 0) { string fname = "No filename given"; try { fname = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData[0]; // It comes in as a URI; this helps to convert it to a path. var uri = new Uri(fname); fname = uri.LocalPath; this.Properties["OpenFile"] = fname; } catch (Exception ex) { // For some reason, this couldn't be read as a URI. // Do what you must... ErrorLogging.LogException(ex); } } DispatcherHelper.Initialize(); TaskFactoryHelper.Initialize(); AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; base.OnStartup(e); }