示例#1
0
        private VZ_AppHelper()
        {
            String jsonStr = readJson(AppDomain.CurrentDomain.BaseDirectory + "\\Datas\\ConfigInfo.json");

            systemInfo = JsonHelper.DeserializeJsonToObject <VZ_SystemInfo>(jsonStr);

            jsonStr = readJson(AppDomain.CurrentDomain.BaseDirectory + "\\Datas\\app.json");
            appList = JsonHelper.DeserializeJsonToList <VZ_AppInfo>(jsonStr);
            foreach (VZ_AppInfo info in appList)
            {
                info.appImgPath = AppDomain.CurrentDomain.BaseDirectory + "Apps\\" + info.appImgPath;
                info.appPath    = AppDomain.CurrentDomain.BaseDirectory + "Apps\\" + info.appPath;
                info.bgPath     = AppDomain.CurrentDomain.BaseDirectory + "Apps\\" + info.bgPath;
                info.moviePath  = AppDomain.CurrentDomain.BaseDirectory + "Apps\\" + info.moviePath;
            }

            int counter = appList.Count;

            for (int i = counter - 1; i >= 0; i--)
            {
                if (!File.Exists(appList[i].appImgPath))
                {
                    appList.RemoveAt(i);
                }
            }

            getServerInfo();
            timer           = new Timer(systemInfo.frequencyOfRequest * 1000);
            timer.Elapsed  += Timer_Elapsed;
            timer.AutoReset = true;
            timer.Start();
        }
示例#2
0
        void saveBuildInfo()
        {
            VZ_SystemInfo info      = VZ_AppHelper.GetInstance().systemInfo;
            String        newConfig = JsonHelper.SerializeObject(info);

            VZMethods.saveFile(AppDomain.CurrentDomain.BaseDirectory + "\\Datas\\ConfigInfo.json", newConfig);
        }
示例#3
0
        void update()
        {
            String updatePath = AppDomain.CurrentDomain.BaseDirectory + @"Update\" + versionInfo.build + @"\";

            if (Directory.Exists(updatePath))
            {
                //检查数据完整性
                addLog("数据完整性", "检查中");
                String md5FilePath = AppDomain.CurrentDomain.BaseDirectory + @"Update\" + versionInfo.build + ".json";
                String str         = VZ_UpdateMethods.readFileToString(md5FilePath);
                md5List = JsonHelper.DeserializeJsonToList <VZ_FileInfos>(str);
                String dirPath = AppDomain.CurrentDomain.BaseDirectory + @"Update\" + versionInfo.build + @"\";
                int    i       = 0;
                bool   isMD5ok = true;
                foreach (VZ_FileInfos infos in md5List)
                {
                    String filePath = dirPath + infos.path;
                    if (!File.Exists(filePath) && !File.Exists(AppDomain.CurrentDomain.BaseDirectory + infos.path))
                    {
                        addLog("数据完整性", filePath + " 没找到");
                        isMD5ok = false;
                        updateProgress(++i, md5List.Count);
                        continue;
                    }
                    if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + infos.path) && !File.Exists(filePath))
                    {
                        updateProgress(++i, md5List.Count);
                        continue;
                    }
                    try
                    {
                        String md5 = VZ_UpdateMethods.GetMD5HashFromFile(filePath);
                        if (!md5.Equals(infos.md5))
                        {
                            //clearDirtyDatas();
                            addLog("数据完整性", filePath + " md5校验错误");
                            isMD5ok = false;
                            File.Delete(filePath);
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                    updateProgress(++i, md5List.Count);
                }
                if (!isMD5ok)
                {
                    //有个别文件有问题,删除
                    MessageBox.Show("校验失败");
                    runVRZone();
                    return;
                }
                addLog("数据完整性", "检查完毕");
                addLog("软件更新", "拷贝数据");
                i = 0;
                // 执行拷贝:
                String objPath = AppDomain.CurrentDomain.BaseDirectory;
                foreach (VZ_FileInfos infos in md5List)
                {
                    try
                    {
                        String path = System.IO.Path.GetDirectoryName(objPath + infos.path);
                        if (!Directory.Exists(path))
                        {
                            Directory.CreateDirectory(path);
                        }
                        if (File.Exists(dirPath + infos.path))
                        {
                            File.Copy(dirPath + infos.path, objPath + infos.path, true);
                        }
                    }
                    catch
                    {
                        addLog("软件更新", objPath + infos.path + "目标拷贝失败");
                        continue;
                    }
                    updateProgress(++i, md5List.Count);
                }
                addLog("软件更新", "更新完毕");
                // 清理旧数据
                addLog("更新缓存", "清理中");
                clearDirtyDatas();
                addLog("更新缓存", "清理完毕");
                //生成新的MD5
                addLog("生成新的文件索引", "进行中");

                String indexPath            = AppDomain.CurrentDomain.BaseDirectory + @"Update\current.json";
                List <VZ_FileInfos> newList = getFull(AppDomain.CurrentDomain.BaseDirectory);
                String newListJson          = JsonHelper.SerializeObject(newList);
                VZ_UpdateMethods.saveFile(indexPath, newListJson);

                addLog("生成新的文件索引", "生成完毕");
                // 更新版本信息
                addLog("更新版本信息", "更新中");
                String        configPath = AppDomain.CurrentDomain.BaseDirectory + @"Datas\ConfigInfo.json";
                VZ_SystemInfo info       = JsonHelper.DeserializeJsonToObject <VZ_SystemInfo>(VZ_UpdateMethods.readFileToString(configPath));
                info.build       = versionInfo.build;
                info.onlineBuild = versionInfo.build;
                info.updateBuild = versionInfo.build;
                info.version     = versionInfo.version;
                String newConfig = JsonHelper.SerializeObject(info);
                VZ_UpdateMethods.saveFile(configPath, newConfig);
                addLog("更新版本信息", "更新完毕");
                //finish
                addLog("升级完毕", "Version " + info.version);
            }
            else
            {
                MessageBox.Show("升级失败,未找到升级目录");
            }

            runVRZone();
        }