Пример #1
0
        private void OnUpdateError(LocalRunInfo localRunInfo, Exception ex)
        {
            this.Invoke((Action)(() =>
            {
                LogHelper.LogError("更新出错", ex);
                _frmProgress.Hide();

                if (MessageBox.Show(string.Format("{0}\r\n是否继续运行?", ex.Message),
                                    "错误", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    if (string.IsNullOrEmpty(localRunInfo.AppRunCmd))
                    {
                        InputStartApp(localRunInfo);
                    }
                    else
                    {
                        UpdateHelper.RunMainApp(localRunInfo);
                    }
                }
                else
                {
                    Exit(localRunInfo);
                }
            }));
        }
Пример #2
0
        private void InputStartApp(LocalRunInfo localRunInfo)
        {
            FrmInput frm = new FrmInput("输入启动程序:", localRunInfo.AppRunCmd);

            if (frm.ShowDialog() == DialogResult.OK)
            {
                localRunInfo.AppRunCmd = frm.Value;
                UpdateHelper.RunMainApp(localRunInfo);
            }
            else
            {
                Exit(localRunInfo);
            }
        }
Пример #3
0
 /// <summary>
 /// 所有主程序关闭事件
 /// </summary>
 /// <param name="detector"></param>
 private void OnMainAppsClose(MainAppStateDetector detector, LocalRunInfo localRunInfo)
 {
     this.Invoke((Action)(() =>
     {
         if (!this._config.KeepUpdaterRunning)
         {
             Exit(null);
         }
         else if (this._config.KeepAppRunning)
         {
             if (!UpdateHelper.IsAppRunning(_mainAppPath))
             {
                 UpdateHelper.RunMainApp(localRunInfo, "由更新程序启动");
             }
         }
     }));
 }
Пример #4
0
        /// <summary>
        /// 运行服务端命令
        /// </summary>
        /// <param name="cmd"></param>
        /// <param name="localRunInfo"></param>
        private void OnServerCommandRequest(ClientCommand cmd, LocalRunInfo localRunInfo)
        {
            switch (cmd.Type)
            {
            case ClientCommandType.Start:
                if (!UpdateHelper.IsAppRunning(_mainAppPath))
                {
                    UpdateHelper.RunMainApp(localRunInfo, "由服务端启动");
                }
                break;

            case ClientCommandType.Stop:
                if (UpdateHelper.IsAppRunning(_mainAppPath))
                {
                    UpdateHelper.KillRunningApps(_mainAppPath);
                }
                break;

            default:
                break;
            }
        }
Пример #5
0
        private void OnUpdateComplete(
            LocalRunInfo localRunInfo,
            IEnumerable <UpdateRunFile> fileDiff,
            List <string> failedUpdateFiles,
            List <string> failedDeleteFiles,
            bool initStart, bool runBat, string msg)
        {
            this.Invoke((Action)(() =>
            {
                _frmProgress.Hide();
                Show();

                OnUpdateStatus("正在保存配置信息...");
                UpdateHelper.SaveLocalRunInfo(localRunInfo);

                if (runBat)
                {
                    OnUpdateStatus("正在做初始化工作...");
                    UpdateHelper.RunBat();
                }

                if (!initStart && fileDiff.Count() > 0)
                { // 由于首次运行的时候更新的文件较多,不写更新日志
                    OnUpdateStatus("正在写更新日志...");
                    LogHelper.WriteUpdateLog(localRunInfo.Ver, fileDiff, failedUpdateFiles, failedDeleteFiles);
                }

                OnUpdateStatus("正在启动主程序...");
                if (string.IsNullOrEmpty(localRunInfo.AppRunCmd))
                {
                    InputStartApp(localRunInfo);
                }
                else
                {
                    UpdateHelper.RunMainApp(localRunInfo, msg);
                }
            }));
        }