コード例 #1
0
        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("启动目标程序异常...");
            }
        }
コード例 #2
0
        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;
            }
        }