using NLog; using FATrace.Model; namespace FATrace.App { internal static class Program { //日志的实例化 private static Logger logger = LogManager.GetCurrentClassLogger(); public static bool IsActive { get; private set; } public static DateTime StartTime = DateTime.Now; public static string SystemName = ""; /// /// The main entry point for the application. /// [STAThread] static void Main() { AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; bool isAppRunning = false; Mutex mutex = new Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out isAppRunning); if (!isAppRunning) { MessageBox.Show("程序已运行,不能再次打开!"); Environment.Exit(1); } // 授权 if (!HslCommunication.Authorization.SetAuthorizationCode("c04165f1-2578-4d86-ab08-a293b7552a5f")) { //active failed MessageBox.Show("授权失败!当前程序只能使用8小时!"); // return; } else { IsActive = true; } // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); // 结构同步:App 端当前 UseAutoSyncStructure(false),需要显式同步新增列 try { FSqlContext.FDb.CodeFirst.SyncStructure(); FSqlContext.FDb.CodeFirst.SyncStructure(); } catch (Exception ex) { logger.Error(ex, "数据库结构同步失败"); MessageBox.Show($"数据库结构同步失败:{ex.Message}"); } Application.Run(new frmMain()); } private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { Exception ex = e.ExceptionObject as Exception; logger.Error(String.Format("ErrSource : {0} ErrMsg : {1}", ex.StackTrace.ToString(), ex.Message.ToString())); } } }