protected override void OnStartup(StartupEventArgs e) { try { MainWindow mw = new MainWindow(); base.OnStartup(e); if (e.Args.Length == 2) { if (e.Args[0] == "test") { Debug.Listeners.Add(new TextWriterTraceListener(TempController.GenTempDir().FullName + "/debug.log")); StaticMemory.Operation = Operation.Test; StaticMemory.Args = e.Args; Debug.WriteLine("Using DFTestXml: " + e.Args[1]); new MainTest(); } else if (e.Args[0] == "install") { Debug.Listeners.Add(new TextWriterTraceListener(TempController.GenTempDir().FullName + "/debug.log")); StaticMemory.Operation = Operation.Test; StaticMemory.Operation = Operation.Install; StaticMemory.Args = e.Args; Debug.WriteLine("Using DFInstallXml: " + e.Args[1]); mw.Show(); } else if (e.Args[0] == "finalize") { TempController.GenTempDir(int.Parse(e.Args[1])); TempController.ClearDirectory(); } else if (e.Args[0] == "unpack") { StaticMemory.Operation = Operation.Unpack; StaticMemory.Args = e.Args; StaticMemory.DFU = DFUnpack.ParseXml(e.Args[1]); Debug.Listeners.Add(new TextWriterTraceListener(TempController.GenTempDir(StaticMemory.DFU.InstallId).FullName + "/debug-installer.log")); Debug.WriteLine("Using DFUnpackXml: " + e.Args[1]); Debug.WriteLine("Temp path: " + TempController.GeneratedDir.FullName); mw.Show(); } else { Current.Shutdown(ExitCode.UnknownArgs); } } else { Current.Shutdown(ExitCode.UnknownArgs); } } catch (Exception ex) { Debug.WriteLine("Exception: " + ex.Message); Current.Shutdown(ExitCode.InternalError); return; } }