/// <summary> /// 获取版本信息 /// </summary> /// <param name="version"></param> /// <param name="error"></param> /// <returns></returns> public static bool GetVersion(out VerModel verModel, out string error) { verModel = null; error = "异常!"; string msg = "typeid=1"; string result = Post.SendMsg("/Web/GetClientVer", msg); JsonRev rec = JsonHelper.ConvertToObject <JsonRev>(result); if (rec.errCode == 0) { if (rec.data != null) { verModel = JsonHelper.ConvertToObject <VerModel>(rec.data.ToString()); } return(true); } else { error = rec.errMsg; } return(false); }
/// <summary> /// 判断是否需要更新程序 /// </summary> /// <returns></returns> private static bool Update() { VerModel verModel = null; string error = ""; bool isUpdate = false; if (GetVersion(out verModel, out error)) { if (verModel != null && verModel.VerCode > Global.VersionInterior) //是否内部版本号比当前的大 { if (verModel.IsMustUpdate) //是否是强制更新 { isUpdate = true; } else { if (MsgHelper.AskQuestion("有新的版本发布,是否下载更新?")) { isUpdate = true; } else { return(true); } } if (isUpdate) { //获取需要更新的文件,并且记录在Update.txt文件夹中 List <string> list = null; if (GetUpdateFiles(out list, out error)) { if (list == null || list.Count == 0) { MsgHelper.ShowError("获取更新文件为空!"); return(false); } string path = Application.ExecutablePath; char strSplit = '\\'; if (path.Contains("\\")) { strSplit = '\\'; } else if (path.Contains("/")) { strSplit = '/'; } string[] array = path.Split(strSplit); string name = array[array.Length - 1].Split('.')[0]; using (StreamWriter sw = File.CreateText(Global.UpdatePath)) { sw.WriteLine(name); foreach (string str in list) { sw.WriteLine(str); } } IniHelper.WriteString(Global.IniUrl, "CONFIG", "VerName", verModel.VerName); Process p = new Process(); p.StartInfo.UseShellExecute = false; p.StartInfo.FileName = Application.StartupPath + "\\AutoUpdate.exe"; p.Start(); Environment.Exit(0); return(false); } else { MsgHelper.ShowError("获取更新文件失败!/r/n" + error); } } } else { return(true); } } else { MsgHelper.ShowError(error); } return(false); }