Пример #1
0
    /// <summary>
    /// 解析下载并更新数据
    /// </summary>
    protected void ParseDownLoadAndUpdateData()
    {
        ///加载本地的.config
        string path = mLocalDataFolder + "filelist.config";

        if (!File.Exists(path))
        {
            if (mLocalDataListInfo == null)
            {
                mLocalDataListInfo = new Filelist();
            }
        }
        else
        {
            FileStream   stream = new FileStream(path, FileMode.Open);
            StreamReader reader = new StreamReader(stream);
            try
            {
                mLocalDataListInfo = JsonMapper.ToObject <Filelist>(reader.ReadToEnd());
                reader.Close();
                stream.Close();
            }
            catch (Exception exception)
            {
                Debug.Log(exception.Message);
                string str2 = reader.ReadToEnd();
                if (str2 == null)
                {
                    Debug.Log("reader.ReadToEnd() = null");
                }
                else
                {
                    Debug.Log("reader.ReadToEnd().Len = " + str2.Length);
                }
                reader.Close();
                stream.Close();
                mLocalDataListInfo = new Filelist();
            }
        }

        ///对比本地文件列表与服务器列表数据
        UpdateTool.GetDiff(ref UpdateTool.Instance.mDownData, ref mRemoveData, mLocalDataListInfo, mServerFileListInfo);
        //统计总下载数据大小
        uint num = 0;

        for (int i = 0; i < UpdateTool.Instance.mDownData.Count; i++)
        {
            num += UpdateTool.Instance.mDownData[i].mSize;
        }

        ContinueDownLoad(num.ToString());
    }
Пример #2
0
        protected override void OnExit()
        {
            if (StageCode_ == StageCode.Succeeded)
            {
                ResPatchInfo PatchInfo = Updater_.GetCurrentResPatchInfo();

                if (PatchInfo == null)
                {
                    return;
                }

                UpdateTool.UpdateResVersionInfo(PatchInfo.To_);
                Updater_.SetCurrentVersionInfo(PatchInfo.To_);
                Updater_.SetCurrentResPatchInfo(null);
            }
        }
Пример #3
0
        private static void Main(params string[] args)
        {
            //检测输入参数
            var result = UpdateTool.CheckParam(args);

            if (!result.Success)
            {
                return;
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new FormMain
            {
                ProductName    = result.ProductName,
                ExecutablePath = result.ExecutablePath,
                ProductVersion = result.ProductVersion,
                NeedToUpdate   = result.NeedForUpdate
            });
        }
Пример #4
0
        protected override void OnEnter()
        {
            Updater_.SetProgressID(StageProgressID.GetResVersionBegin);
            Updater_.SetProgressValue(0);
            Updater_.ClearError();

            ResVersionInfo VersionInfo = UpdateTool.GetResVersionInfo();

            if (VersionInfo == null)
            {
                StageCode_ = StageCode.Failed;
                Updater_.SetError(ErrorCode.GetResVersionInfoFailed, UpdateTool.VersionInfoPath_);
            }
            else
            {
                Updater_.SetResVersionInfo(VersionInfo);
                Updater_.SetCurrentVersionInfo(VersionInfo.Version_);
                StageCode_ = StageCode.Succeeded;
            }

            Updater_.SetProgressID(StageProgressID.GetResVersionEnd);
            Updater_.SetProgressValue(1.0f);
        }
Пример #5
0
        public void UpdateModText(UIMouseEvent evt, UIElement listeningElement)
        {
            var path = Path.Combine(Main.SavePath, "Texts/", mod.Name);

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            if (!ImportTool.CheckDir(path))
            {
                ExportTool.ExportInfo(mod, path);
                ExportTool.ExportItemTexts(mod, path);
                ExportTool.ExportNPCTexts(mod, path);
                ExportTool.ExportBuffTexts(mod, path);
                ExportTool.ExportMiscTexts(mod, path);
            }
            else
            {
                var items = CommonTools.LoadJson <TextFile.ItemFile>(Path.Combine(path, "Items.json"));
                UpdateTool.UpdateItemsText(items, ExportTool.GetItemTexts(mod));
                CommonTools.DumpJson(Path.Combine(path, "Items.json"), items);

                var npcs = CommonTools.LoadJson <TextFile.NPCFile>(Path.Combine(path, "NPCs.json"));
                UpdateTool.UpdateNPCsText(npcs, ExportTool.GetNPCTexts(mod));
                CommonTools.DumpJson(Path.Combine(path, "NPCs.json"), npcs);

                var buffs = CommonTools.LoadJson <TextFile.BuffFile>(Path.Combine(path, "Buffs.json"));
                UpdateTool.UpdateBuffsText(buffs, ExportTool.GetBuffTexts(mod));
                CommonTools.DumpJson(Path.Combine(path, "Buffs.json"), buffs);

                var miscs = CommonTools.LoadJson <TextFile.MiscFile>(Path.Combine(path, "Miscs.json"));
                UpdateTool.UpdateMiscsText(miscs, ExportTool.GetMiscTexts(mod));
                CommonTools.DumpJson(Path.Combine(path, "Miscs.json"), miscs);
            }
        }
Пример #6
0
        /// <summary>
        /// 处理版本更新事件
        /// </summary>
        /// <param name="version"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        private bool HandleUpdate(ProductVersion version, ref string message)
        {
            if (string.IsNullOrEmpty(message))
            {
                message = $"正在更新【{ProductName}】的版本【V{version.Value}】。。。";
            }
            Update versionDetail = null;

            if (!UpdateTool.GetProductVersionDetail(ProductName, version.Folder, ref versionDetail))
            {
                message = "获取更新明细失败";
                return(false);
            }
            RetsetProgress(versionDetail.WorkCount);
            //前期准备
            if (!HandleWork("更新前准备工作", version.Folder, versionDetail.Preparation, ref message))
            {
                return(false);
            }
            //实际处理
            return(HandleWork("处理工作", version.Folder, versionDetail.Handle, ref message)
                ? HandleWork("更新成功后工作", version.Folder, versionDetail.Success, ref message)
                : HandleWork("更新失败后回滚工作", version.Folder, versionDetail.Rollback, ref message));
        }
Пример #7
0
        protected override void OnEnter()
        {
            Updater_.SetProgressID(StageProgressID.CheckResVersionBegin);
            Updater_.SetProgressValue(0);
            Updater_.ClearError();

            ResPatchInfoList PatchInfoList = Updater_.GetResPatchInfoList();

            if (PatchInfoList == null)
            {
                PatchInfoList = UpdateTool.GetResPatchInfoList();
                if (PatchInfoList == null)
                {
                    StageCode_ = StageCode.Failed;
                    Updater_.SetError(ErrorCode.GetResPatchInfoListFailed, UpdateTool.ServerVersionInfoPath_);
                    return;
                }

                Updater_.SetResPatchInfoList(PatchInfoList);
            }

            ResPatchInfo PatchInfo = PatchInfoList.GetPatchWithVersion(Updater_.GetCurrentVersionInfo());

            if (PatchInfo != null)
            {
                Updater_.SetCurrentResPatchInfo(PatchInfo);
            }
            else
            {
                SetNextStageID(StageID.Final);
            }

            StageCode_ = StageCode.Succeeded;
            Updater_.SetProgressID(StageProgressID.CheckResVersionEnd);
            Updater_.SetProgressValue(1.0f);
        }
Пример #8
0
        /// <summary>
        /// work
        /// </summary>
        /// <param name="operation">操作类型</param>
        /// <param name="sourceFolder">服务器文件夹(Download有效)</param>
        /// <param name="work"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        protected bool HandleWork(string operation, string sourceFolder, Work work, ref string message)
        {
            if (work == null)
            {
                return(true);
            }
            foreach (var doc in work.MakeDir)
            {
                backgroundWorker1.ReportProgress(1);
                AppendText($"【{operation}】正在创建文件夹。。。");
                if (!UpdateTool.MakeDir(doc.TargetFolder, ref message))
                {
                    return(false);
                }
            }
            foreach (var doc in work.NewFile)
            {
                backgroundWorker1.ReportProgress(1);
                AppendText($"【{operation}】正在新建文件。。。");
                if (!UpdateTool.NewFile(doc.TargetFolder, doc.Name, ref message))
                {
                    return(false);
                }
            }
            foreach (var doc in work.Copy)
            {
                backgroundWorker1.ReportProgress(1);
                AppendText($"【{operation}】正在复制文件。。。");
                if (!UpdateTool.Copy(doc.SourceFolder, doc.TargetFolder, doc.Name, ref message))
                {
                    return(false);
                }
            }
            foreach (var doc in work.Download)
            {
                backgroundWorker1.ReportProgress(1);
                AppendText($"【{operation}】正在下载文件。。。");
                if (!UpdateTool.Download(ProductName, sourceFolder, doc.TargetFolder, doc.Name, ref message))
                {
                    return(false);
                }
            }
            foreach (var doc in work.UnRegister)
            {
                backgroundWorker1.ReportProgress(1);
                AppendText($"【{operation}】正在反注册文件。。。");
                if (!UpdateTool.UnRegister(doc.TargetFolder, doc.Name, ref message))
                {
                    return(false);
                }
            }
            foreach (var doc in work.Register)
            {
                backgroundWorker1.ReportProgress(1);
                AppendText($"【{operation}】正在注册文件。。。");
                if (!UpdateTool.Register(doc.TargetFolder, doc.Name, ref message))
                {
                    return(false);
                }
            }
            foreach (var doc in work.Execute)
            {
                backgroundWorker1.ReportProgress(1);
                AppendText($"【{operation}】正在执行文件。。。");
                if (!UpdateTool.Execute(doc.TargetFolder, doc.Name, ref message))
                {
                    return(false);
                }
            }
            foreach (var doc in work.Delete)
            {
                backgroundWorker1.ReportProgress(1);
                AppendText($"【{operation}】正在删除文件。。。");
                if (!UpdateTool.DeleteFile(doc.TargetFolder, doc.Name, ref message))
                {
                    return(false);
                }
            }
            foreach (var doc in work.RemoveDir)
            {
                backgroundWorker1.ReportProgress(1);
                AppendText($"【{operation}】正在删除文件夹。。。");
                if (!UpdateTool.RemoveDir(doc.TargetFolder, ref message))
                {
                    return(false);
                }
            }
            AppendText($"【{operation}】完成!");

            return(true);
        }
Пример #9
0
 private void btnLaucher_Click(object sender, EventArgs e)
 {
     UpdateTool.StartProcess(ExecutablePath);
     Application.Exit();
     //this.Close();
 }