예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }