private void StartMainProcess() { try { var exeName = Path.Combine(_message.LocalUrl, "IDCube.exe"); var exeDir = Path.Combine(_message.LocalUrl, "IDCube"); ProcessProvide.StartProcess(exeName, exeDir); AppendText("更新完成!"); } catch (Exception ex) { Logger.Main.Error($"启动主程序异常:{ex.Message} {ex.StackTrace}"); AppendText("启动目标程序异常..."); } }
private void StartUpdate() { try { Logger.Main.Info("程序启动完成"); var pargs = Environment.GetCommandLineArgs(); foreach (var p in pargs) { Logger.Main.Info($"CommandLineArgs:{p}"); } if (pargs.Length < 2 || pargs[1] == null) { AppendText($"启动参数错误"); //ShutDownApp(); return; } try { _message = new Message { LocalUrl = pargs[1].Split('|')[0].TrimEnd('\\'), UpdateUrl = pargs[1].Split('|')[1], PublicLibUrl = pargs[1].Split('|')[2] }; Logger.Main.Info($"获取命令行参数:{JsonConvert.SerializeObject(_message)}"); if (_message.UpdateUrl == "-") { MainPackageDownload = true; } if (_message.PublicLibUrl == "-") { PublibPackageDownload = true; } } catch (Exception ex) { Logger.Main.Error($"参数解析异常:{ex.Message} {ex.StackTrace}"); AppendText($"启动参数错误"); //ShutDownApp(); return; } AppendText("正在更新中..."); ProcessProvide.KillProcess("IDCube"); TryDeleteTempFile(); //todo 下载主程序更新包 if (_message.UpdateUrl != "-") { var updateUrl = new Uri(_message.UpdateUrl); var webclient = new WebProvide { DownloadProgressChangedAction = MainPackage_DownloadProgressChanged, DownloadFileCompletedAction = MainPackage_DownloadFileCompleted }; webclient.DownLoad(updateUrl, FrameworkConst.MainPackagePath); } //TODO 下载公共库更新包 if (_message.PublicLibUrl != "-") { var pubLibUrl = new Uri(_message.PublicLibUrl); var webclient = new WebProvide { DownloadProgressChangedAction = PubLibPackage_DownloadProgressChanged, DownloadFileCompletedAction = PubLibPackage_DownloadFileCompleted }; webclient.DownLoad(pubLibUrl, FrameworkConst.PubLibPackagePath); } } catch (Exception ex) { Logger.Main.Error($"更新异常:{ex.Message} {ex.StackTrace}"); AppendText($"更新异常:{ex.Message}"); //ShutDownApp(); return; } }