예제 #1
0
        private static void TestRemoteWrite()
        {
            VersionInfos infos = new VersionInfos();

            infos.Release = new VersionInfo[1]
            {
                new VersionInfo()
                {
                    Name = "xuyouji_1001", Version = "0.1.0", MD5 = "ceshi"
                }
            };
            string json = JsonUtility.Encode(infos);

            File.WriteAllText("X:/ProjectAssets/xuyouji/release.txt", json);
        }
예제 #2
0
        public static void Startup()
        {
            //TestRemoteWrite();
            //TestLocalWrite();
            //TestCfgWrite();

            // 获取本地版本号
            try
            {
                if (File.Exists(CfgPath) == false)
                {
                    Sb.Append("没有找到版本文件:" + VLocalPath);
                    MainWindow.TxtVersion.Content = "无法获取配置文件";
                }
                else
                {
                    string     cfgJson = File.ReadAllText(CfgPath);
                    UpgradeCfg oCfg    = JsonUtility.Decode <UpgradeCfg>(cfgJson);
                    ServerUpgradePackageUrl = oCfg.ServerUpgradePackageUrl;
                    ServerUpgradeConfigUrl  = oCfg.ServerUpgradeConfigUrl;
                }

                if (File.Exists(VLocalPath) == false)
                {
                    Sb.Append("没有找到版本文件:" + VLocalPath);
                    MainWindow.TxtVersion.Content = "无法获取软件信息";
                }
                else
                {
                    string localVersion = File.ReadAllText(VLocalPath);

                    if (string.IsNullOrEmpty(localVersion) == true)
                    {
                        Sb.Append("版本信息为空:" + VLocalPath);
                        MainWindow.TxtVersion.Content = "无法获取软件信息";
                    }
                    else
                    {
                        LocalVersionExt = JsonUtility.Decode <VersionExt>(localVersion);

                        MainWindow.TxtVersion.Content = LocalVersionExt.Release.Version.Replace(".zip", "");

                        LocalVersion = new Version(LocalVersionExt.Release.Version);
                    }
                }
            }
            catch (System.Exception e)
            {
                Sb.Append("出现异常:" + e.ToString());
                MainWindow.TxtVersion.Content = "无法获取软件信息";
            }

            if (LocalVersionExt != null)
            {
                string content = string.Empty;

                try
                {
                    HttpHelper oHeper = new HttpHelper();
                    content = oHeper.HttpGet(ServerUpgradeConfigUrl, string.Empty);
                }
                catch (Exception e)
                {
                    // 这里进行日志输出
                    Sb.Append(e.ToString());
                }

                if (string.IsNullOrEmpty(content) == true)
                {
                    MainWindow.TxtUpdateInfo.Content = "无法连接到服务器!";
                    string localVersion = LocalVersionExt.Release.Name.Replace(".zip", "");
                    Process(LocalPath + "/" + localVersion);
                }
                else
                {
                    // 解析服务器版本号,获取最后的版本
                    VersionInfos versionInfos = JsonUtility.Decode <VersionInfos>(content);

                    //Version oCompareRemoteVersion = new Version(LocalVersion.ToString());
                    //for (int i = 0; i < versionInfos.Release.Length; i++)
                    //{
                    //    VersionInfo oTmpRemoteVersionInfo= versionInfos.Release[i];
                    //    Version oTmpRemoteVersion = new Version(oTmpRemoteVersionInfo.Version);
                    //    if (oTmpRemoteVersion.Compare(oCompareRemoteVersion.ToString()) == 1)
                    //    {
                    //        oCompareRemoteVersion = oTmpRemoteVersion;
                    //    }
                    //}

                    VersionInfo remoteVersionInfo = versionInfos.Release[versionInfos.Release.Length - 1];
                    RemoteVersionExt = new VersionExt()
                    {
                        Release = remoteVersionInfo
                    };
                    try
                    {
                        Version localTMPV   = new Version(LocalVersionExt.Release.Version);
                        Version remoteTMPV  = new Version(RemoteVersionExt.Release.Version);
                        int     versionCode = localTMPV.Compare(remoteTMPV.ToString());
                        if (versionCode == -1)
                        {
                            // 输入版本大于当前版本
                            MainWindow.TxtNextVersion.Content = remoteTMPV.ToString().Replace(".zip", "");
                            string appUrl = ServerUpgradePackageUrl + "/" + Path.GetFileNameWithoutExtension(remoteVersionInfo.Name) + ".zip";
                            LocalZip = LocalPath + "/" + Path.GetFileNameWithoutExtension(remoteVersionInfo.Name) + ".zip";
                            ZCSharpLib.App.Make <HttpLoader>().AddLoad(appUrl, LocalZip, OnFinishedHandler, OnProgressHandler);
                        }
                        else
                        {
                            string localVersion = LocalVersionExt.Release.Name.Replace(".zip", "");
                            Process(LocalPath + "/" + localVersion);
                        }
                    }
                    catch (System.Exception e)
                    {
                        Sb.Append("\r\n" + e.ToString());
                    }
                }

                File.WriteAllText(UpgradeInfo, Sb.ToString());
            }
        }