/// <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()); }
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); } }
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 }); }
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); }
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); } }
/// <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)); }
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); }
/// <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); }
private void btnLaucher_Click(object sender, EventArgs e) { UpdateTool.StartProcess(ExecutablePath); Application.Exit(); //this.Close(); }