Example #1
0
 //版本库中最新的表格若未生成配置则生成临时配置
 public static void ParseTemp(string exlPath, string branch)
 {
     SVNHelper.Update(FileUtil.PathCombine(GlobalCfg.SourcePath, ".."));
     SVNHelper.Update(FileUtil.PathCombine(GlobalCfg.SourcePath, target_client_table_path));
     instance.MatchExcelFile(exlPath, null, null);
     GenTableImportFile();
 }
Example #2
0
 void PackRes()
 {
     try
     {
         SVNHelper.UpdateAssets();
         // 1.清理ab名
         ClearABName();
         // 2.设置ab名
         SetAbName();
         // 3.打包ab
         BuildAssetBundle();
         // 4.建立ab映射文件
         BuildBundleNameMapFile();
         // 5.记录压缩前文件大小和md5码,以及资源类型(是否包含于整包,是否是补丁资源)
         RecordFileRealSize();
         // 6.压缩资源
         BuildLuaAndCopyResources();
         // 7.分包处理
         CopyPackableFiles();
         Resources.UnloadUnusedAssets();
         GC.Collect();
     }
     catch (Exception e)
     {
         Debug.LogException(e);
     }
 }
        private static void OnChanged(object source, FileSystemEventArgs e)
        {
            SVNHelper.htpasswdRead();

            foreach (var item in ProgramSetting.APIConfig)
            {
                bool is_Success = false;
                int  reTryCount = 3;
                if (is_Success == false && reTryCount > 0)
                {
                    // 加密发送消息
                    JsonPostModel jpm = new JsonPostModel();
                    jpm.Agent    = JsonPostModelAgent.Client.ToString();
                    jpm.DataType = JsonPostModelDataType.AllAuthInfo.ToString();
                    jpm.Data     = htpasswdUserAndPassword.UsersTable;
                    is_Success   = WebFunctionHelper.PostToAPI(EncryptsAndDecryptsHelper.Encrypt(JsonConvert.SerializeObject(jpm), item.SecretKey, item.IV), item.APIurl, item.SecretKey, item.IV);
                    if (is_Success)
                    {
                        is_Success = true;
                    }
                    else
                    {
                        LogHelper.WriteLog("发送Repo更新信息出现错误", LogHelper.Log4NetLevel.Error);
                        reTryCount--;
                        Thread.Sleep(3000);
                    }
                }
                else
                {
                    LogHelper.WriteLog("发送Repo更新信息重试3次之后依旧出错!", LogHelper.Log4NetLevel.Error);
                }
            }
        }
Example #4
0
 void OneKeyPack(OneKeyType type)
 {
     try
     {
         if (SetPlayerSavePath())
         {
             // 0.svn更新打包资源
             SVNHelper.UpdateAssets();
             SVNHelper.UpdateTempAssets();
             // 1.svn更新
             SVNHelper.UpdateAll();
             // 2. 清除AB名
             ClearABName();
             // 3. 设置AB名
             SetAbName();
             // 3.打包ab
             BuildAssetBundle();
             // 4.建立ab映射文件
             BuildBundleNameMapFile();
             // 5.记录压缩前文件大小和md5码,以及资源类型(是否包含于整包,是否是补丁资源)
             RecordFileRealSize();
             // 6.打包lua以及压缩资源
             BuildLuaAndCopyResources();
             // 7.svn提交打包资源
             SVNHelper.CommitPackAssets();
             // 8.复制分包资源到StreamingAssets目录下
             if (type == OneKeyType.allpack_only)
             {
                 CopyPackableFiles();
                 // 9.打包测试包
                 BuildPlayer(false, false);
                 // 10.打包整包
                 CopyAllBundles();
                 BuildPlayer(true, type == OneKeyType.force_apk_change);
                 // 11.重置config.txt
                 ResetConfig();
             }
             else if (type == OneKeyType.inside || type == OneKeyType.force_apk_change)
             {
                 CopyAllBundles();
                 // 10.打包内网整包
                 BuildPlayer(true, type == OneKeyType.force_apk_change);
                 // 11.重置config.txt
                 ResetConfig();
             }
             // 12.上传CDN
             UploadCheck();
             Resources.UnloadUnusedAssets();
             GC.Collect();
         }
     }
     catch (Exception e)
     {
         Debug.LogException(e);
     }
 }
Example #5
0
 void Pack()
 {
     if (SetPlayerSavePath())
     {
         SVNHelper.UpdateAssets();
         ClearABName();
         SetAbName();
         // 开始打包
         Build();
     }
 }
Example #6
0
 protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
 {
     //do my stuff before closing
     FileUtil.DeleteHiddenFile(new List <string> {
         GlobalCfg.SourcePath + "/.."
     }, _Ext);
     FileUtil.DeleteHiddenFile(new List <string> {
         GlobalCfg.SourcePath + "/.."
     }, ".txt");
     SVNHelper.ReleaseAll();
     base.OnClosing(e);
 }
Example #7
0
 private void CancelEdit_Click(object sender, RoutedEventArgs e)
 {
     System.Windows.Forms.MessageBoxButtons buttons = System.Windows.Forms.MessageBoxButtons.OKCancel;
     System.Windows.Forms.DialogResult      dr      = System.Windows.Forms.MessageBox.Show("是否放弃所有修改?", "确认", buttons);
     if (dr == System.Windows.Forms.DialogResult.OK)
     {
         GlobalCfg.Instance.ClearCurrent();
         SVNHelper.ReleaseExcelRelative(_excelItemChoosed.FilePath);
         _excelItemChoosed.IsEditing = false;
         FileListView_SelectionChange(null, null);
     }
 }
Example #8
0
        private void MultiFuncBtn_Click(object sender, RoutedEventArgs e)
        {
            Button senderBtn = sender as Button;

            switch (senderBtn.Content)
            {
            case STATE_UPDATE:
                SVNHelper.Update(_Folders[0], _Folders[1]);
                GlobalCfg.Instance.ClearAll();
                FileListView_SelectionChange(null, null);
                GetRevision();
                break;

            case STATE_REVERT:
                SVNHelper.RevertAll(_excelItemChoosed.Paths);
                CheckStateBtn_Click(null, null);
                GlobalCfg.Instance.ClearCurrent();
                FileListView_SelectionChange(null, null);
                break;

            case STATE_EDIT:
                //请求进入编辑状态
                if (SVNHelper.RequestEdit(_excelItemChoosed.FilePath))
                {
                    _excelItemChoosed.IsEditing = true;
                }
                else
                {
                    _excelItemChoosed.IsEditing = false;
                }
                JudgeMultiFuncBtnState();
                EditingModeRender();
                break;

            case STATE_FINISH_EDIT:
                System.Windows.Forms.MessageBoxButtons buttons = System.Windows.Forms.MessageBoxButtons.OKCancel;
                System.Windows.Forms.DialogResult      dr      = System.Windows.Forms.MessageBox.Show("是否提交对于" + _excelItemChoosed.Name + "的修改?", "确认", buttons);
                if (dr == System.Windows.Forms.DialogResult.OK)
                {
                    for (int i = 0; i < GlobalCfg.BranchCount; i++)
                    {
                        GlobalCfg.Instance.ExcuteModified(i);
                    }
                    SVNHelper.ReleaseExcelRelative(_excelItemChoosed.FilePath);
                    _excelItemChoosed.IsEditing = false;
                    FileListView_SelectionChange(null, null);
                }
                break;

            default:
                break;
            }
        }
Example #9
0
 void UploadCheck()
 {
     if (sdkConfig.upload243 == 1)
     {
         SVNHelper.UpdateTo243();
     }
     else if (sdkConfig.uploadCDN == 1)
     {
         foreach (var item in sdkConfig.uploadPathes)
         {
             SVNHelper.UpdateToCDN(item.path, gameVersion.ToString(), item.script);
         }
     }
 }
Example #10
0
    public static bool RequestEdit(string exlpath)
    {
        if (!File.Exists(exlpath))
        {
            return(false);
        }
        List <string> paths = GetAllPaths(Path.GetFileNameWithoutExtension(exlpath));

        paths.Add(exlpath);
        Stack <string> haslockPaths = new Stack <string>();

        for (int i = 0; i < paths.Count; i++)
        {
            if (!IsLockedByMe(paths[i]))
            {
                if (Lock(paths[i], "请求锁定" + paths[i]))
                {
                    haslockPaths.Push(paths[i]);
                }
                else
                {
                    string            message = SVNHelper.LockInfo(exlpath);
                    string            caption = "无法进入编辑状态";
                    MessageBoxButtons buttons = MessageBoxButtons.OK;
                    MessageBox.Show(message, caption, buttons);
                    break;
                }
            }
            else
            {
                haslockPaths.Push(paths[i]);
            }
            //成功进入编辑状态,继续持有锁
            if (i == paths.Count - 1)
            {
                return(true);
            }
        }

        //未成功进入编辑状态,释放锁
        for (int i = 0; i < haslockPaths.Count; i++)
        {
            Release(haslockPaths.Pop());
        }

        return(false);
    }
Example #11
0
        private void MultiFuncBtn_Click(object sender, RoutedEventArgs e)
        {
            Button senderBtn = sender as Button;

            switch (senderBtn.Content)
            {
            case STATE_UPDATE:
                SVNHelper.Update(_Folders[0], _Folders[1]);
                GlobalCfg.Instance.Clear();
                GetRevision();
                break;

            case STATE_REVERT:
                RevertAll(_listItemChoosed.Paths);
                CheckStateBtn_Click(null, null);
                break;

            case STATE_EDIT:
                //请求进入编辑状态
                if (SVNHelper.RequestEdit(_listItemChoosed.FilePath))
                {
                    _listItemChoosed.IsEditing = true;
                }
                else
                {
                    _listItemChoosed.IsEditing = false;
                }
                JudgeMultiFuncBtnState();
                ResetGenBtnEnable();
                break;

            case STATE_FINISH_EDIT:
                for (int i = 0; i < GlobalCfg.BranchCount; i++)
                {
                    GlobalCfg.Instance.ExcuteModified(i);
                }
                ReleaseExcelRelative(_listItemChoosed.FilePath);
                _listItemChoosed.IsEditing = false;
                JudgeMultiFuncBtnState();
                break;

            default:
                break;
            }
        }
Example #12
0
    void CopyIOSCompressedData()
    {
        string to = ABPackHelper.TEMP_ASSET_PATH + "IOSCompress";

        if (Directory.Exists(to))
        {
            Directory.Delete(to, true);
        }
        Directory.CreateDirectory(to);
        string from = Application.streamingAssetsPath;

        string[] files = Directory.GetFiles(from, "*", SearchOption.AllDirectories);
        for (int i = 0; i < files.Length; ++i)
        {
            if (files[i].EndsWith(".meta"))
            {
                continue;
            }
            var    dest = files[i].Replace("\\", "/").Replace(Application.streamingAssetsPath + "/", "");
            var    dirs = dest.Split('/');
            string path = to;
            ABPackHelper.ShowProgress("compress for ios: " + dest, (float)i / (float)files.Length);
            foreach (var dir in dirs)
            {
                if (dir.Contains('.'))
                {
                    continue;
                }
                path += "/" + dir;
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
            }
            File.Copy(files[i], to + "/" + dest, true);
        }
        ABPackHelper.ShowProgress("copy compressed data for ios...", 1);
        SVNHelper.CommitIOSCompressedData();
        AssetDatabase.Refresh();
    }
Example #13
0
    public static void ParseAll()
    {
        SVNHelper.Update(FileUtil.PathCombine(GlobalCfg.SourcePath, ".."));
        SVNHelper.Update(FileUtil.PathCombine(GlobalCfg.SourcePath, target_client_table_path));
        _NeedImportClient.Clear();
        _NeedImportServer.Clear();
        List <string> files = FileUtil.CollectFolder(GlobalCfg.SourcePath, _ExcelExt, instance.MatchExcelFile);

        #region 生成Table.txt的Client和Server版本
        GenTableImportFile();
        #endregion
        //for (int i = 0; i < files.Count; i++)
        //{
        //_ExcelFiles.Add(new ExcelFileListItem()
        //{
        //    Name = Path.GetFileNameWithoutExtension(files[i]),
        //    Status = "C/S",
        //    ClientServer = "C/S",
        //    FilePath = files[i]
        //});
        //}
    }
Example #14
0
        private void CheckStateBtn_Click(object sender, RoutedEventArgs e)
        {
            Dictionary <string, SVNHelper.FileStatusStr> statusDic = SVNHelper.AllStatus();

            for (int i = 0; i < excelFiles.Count; i++)
            {
                if (statusDic.ContainsKey(excelFiles[i].Name))
                {
                    excelFiles[i].IsSame = statusDic[excelFiles[i].Name].isSame;
                    excelFiles[i].Paths  = statusDic[excelFiles[i].Name].paths;
                    //TODO:检测已经加锁的文件
                    //_ExcelFiles[i].IsEditing = statusDic[_ExcelFiles[i].Name].isLock;
                }
                else
                {
                    excelFiles[i].IsSame    = true;
                    excelFiles[i].IsEditing = false;
                    excelFiles[i].Paths.Clear();
                }
            }
            JudgeMultiFuncBtnState();
            #region 插入deleted文件(已注释)
            //foreach (KeyValuePair<string, string[]> kv in statusDic)
            //{
            //    if (kv.Value[0] == SVNHelper.STATE_DELETED)
            //    {
            //        _ExcelFiles.Add(new ExcelFileListItem()
            //        {
            //            Name = Path.GetFileNameWithoutExtension(kv.Key),
            //            Status = kv.Value[0],
            //            LockByMe = kv.Value[1],
            //            ClientServer = "C/S",
            //            FilePath = kv.Key
            //        });
            //    }
            //}
            #endregion
        }
        // 文件/文件夹改变处理
        private static void OnChanged(object source, FileSystemEventArgs e)
        {
            // e.FullPath 是FileInfo类型 直接使用可输出完整路径
            var change = SVNHelper.ReadRepositoriesFile(e.FullPath);

            // 将变化写入
            SVNHelper.MergeRepoDictionary(RepoDataSourcePermission.RepoPermissons, change);
            LogHelper.WriteLog(e.FullPath + "\n 文件发生变化", LogHelper.Log4NetLevel.Debug);

            foreach (var item in ProgramSetting.APIConfig)
            {
                bool is_Success = false;
                int  reTryCount = 3;
                if (is_Success == false && reTryCount > 0)
                {
                    // 加密发送消息
                    JsonPostModel jpm = new JsonPostModel();
                    jpm.Agent    = JsonPostModelAgent.Client.ToString();
                    jpm.DataType = JsonPostModelDataType.ChangeRepo.ToString();
                    jpm.Data     = change;
                    is_Success   = WebFunctionHelper.PostToAPI(EncryptsAndDecryptsHelper.Encrypt(JsonConvert.SerializeObject(jpm), item.SecretKey, item.IV), item.APIurl, item.SecretKey, item.IV);
                    if (is_Success)
                    {
                        is_Success = true;
                    }
                    else
                    {
                        LogHelper.WriteLog("发送Repo更新信息出现错误", LogHelper.Log4NetLevel.Error);
                        reTryCount--;
                        Thread.Sleep(3000);
                    }
                }
                else
                {
                    LogHelper.WriteLog("发送Repo更新信息重试3次之后依旧出错!", LogHelper.Log4NetLevel.Error);
                }
            }
        }
Example #16
0
 private void GetRevision()
 {
     _localRev  = SVNHelper.GetLastestReversion(_Folders[0]);
     _serverRev = SVNHelper.GetLastestReversion(_URL);
     JudgeMultiFuncBtnState();
 }
Example #17
0
    void BuildPlayer(bool packAllRes, bool forceUpdate)
    {
        var option = BuildOptions.None;

        if (debug)
        {
            option |= BuildOptions.AllowDebugging;
        }
        if (development)
        {
            option |= BuildOptions.Development;
        }
        if (autoConnectProfile)
        {
            option |= BuildOptions.ConnectWithProfiler;
        }
        var temps = Apk_Save_Path.Replace("\\", "/").Split('/');

        if ((ABPackHelper.GetBuildTarget() == BuildTarget.Android ||
             ABPackHelper.GetBuildTarget() == BuildTarget.StandaloneWindows64 ||
             ABPackHelper.GetBuildTarget() == BuildTarget.StandaloneWindows) &&
            sdkConfig != null)
        {
            string lastChannel = string.Empty;
            for (int i = 0; i < sdkConfig.items.Count; ++i)
            {
                StringBuilder final_path = new StringBuilder();
                for (int j = 0; j < temps.Length - 1; ++j)
                {
                    final_path.Append(temps[j] + "/");
                }
                var item = sdkConfig.items[i];
                if (item.need_subpack == 0 && !packAllRes)
                {
                    continue;
                }
                if (ABPackHelper.GetBuildTarget() == BuildTarget.StandaloneWindows64 || ABPackHelper.GetBuildTarget() == BuildTarget.StandaloneWindows)
                {
                    final_path.Append(DateTime.Now.ToString("yyyyMMdd") + "/");
                    if (!Directory.Exists(final_path.ToString()))
                    {
                        Directory.CreateDirectory(final_path.ToString());
                    }
                    final_path.Append(item.game_name + "_v");
                }
                else
                {
                    if (packAllRes)
                    {
                        if (item.development == 1)
                        {
                            option |= BuildOptions.Development;
                            final_path.Append(item.game_name + DateTime.Now.ToString("yyyyMMdd") + "_allpack_dev_v");
                        }
                        else if (item.use_sdk == 1)
                        {
                            final_path.Append(item.game_name + DateTime.Now.ToString("yyyyMMdd") + "_allpack_sdk_v");
                        }
                        else
                        {
                            final_path.Append(item.game_name + DateTime.Now.ToString("yyyyMMdd") + "_allpack_test_v");
                        }
                    }
                    else
                    {
                        if (item.development == 1)
                        {
                            option |= BuildOptions.Development;
                            final_path.Append(item.game_name + DateTime.Now.ToString("yyyyMMdd") + "_subpack_dev_v");
                        }
                        else if (item.use_sdk == 1)
                        {
                            final_path.Append(item.game_name + DateTime.Now.ToString("yyyyMMdd") + "_subpack_sdk_v");
                        }
                        else
                        {
                            final_path.Append(item.game_name + DateTime.Now.ToString("yyyyMMdd") + "_subpack_test_v");
                        }
                    }
                }
                final_path.Append(gameVersion.ToString());
                if (ABPackHelper.GetBuildTarget() == BuildTarget.Android)
                {
                    final_path.Append(".apk");
                    if (File.Exists(final_path.ToString()))
                    {
                        File.Delete(final_path.ToString());
                    }
                    // 写入并保存sdk启用配置
                    item.CopyConfig();
                    item.CopySDK();
                    item.SetPlayerSetting(sdkConfig.splash_image);
                    item.SaveSDKConfig();
                    item.SplitAssets(sdkConfig.split_assets);
                    IncreaseLEBIAN_VERCODE(forceUpdate, item.update_along);
                    if (item.update_along == 0 && forceUpdate)
                    {
                        if (Directory.Exists(Application.streamingAssetsPath))
                        {
                            Directory.Delete(Application.streamingAssetsPath, true);
                        }
                    }
                }
                else if (ABPackHelper.GetBuildTarget() == BuildTarget.StandaloneWindows64 || ABPackHelper.GetBuildTarget() == BuildTarget.StandaloneWindows)
                {
                    final_path.Append(".exe");
                    if (Directory.Exists(final_path.ToString()))
                    {
                        Directory.Delete(final_path.ToString(), true);
                    }
                    item.CopyConfig();
                }
                AssetDatabase.Refresh();
                BuildPipeline.BuildPlayer(ABPackHelper.GetBuildScenes(), final_path.ToString(), ABPackHelper.GetBuildTarget(), option);
                AssetDatabase.Refresh();
                item.ClearSDK();

                SVNHelper.UpdateAll();
            }
        }
        else if (ABPackHelper.GetBuildTarget() == BuildTarget.iOS)
        {
            // 在上传目录新建一个ios_check.txt文件用于判断当前包是否出于提审状态
            string checkFile = ABPackHelper.ASSET_PATH + LuaConst.osDir + "/ios_check.txt";
            if (File.Exists(checkFile))
            {
                File.Delete(checkFile);
            }
            File.WriteAllText(checkFile, "1");

            XCConfigItem configItem = XCConfigItem.ParseXCConfig(XCodePostProcess.config_path);
            if (configItem != null)
            {
                PlayerSettings.applicationIdentifier = configItem.bundleIdentifier;
                PlayerSettings.productName           = configItem.product_name;
                configItem.CopyConfig();
            }
            IOSGenerateHelper.IOSConfusing();
            AssetDatabase.Refresh();
            BuildPipeline.BuildPlayer(ABPackHelper.GetBuildScenes(), Apk_Save_Path, ABPackHelper.GetBuildTarget(), option);
            AssetDatabase.Refresh();
        }

        Resources.UnloadUnusedAssets();
        GC.Collect();

        Debug.Log("<color=green>Build success!</color>");
    }
Example #18
0
        public static void MainRunFunction()
        {
            string encryptsJson = "";

            // 初始化 读取所有仓库的信息
            try
            {
                SVNHelper.ReadRepositoriesAll();
                LogHelper.WriteLog("仓库信息初始化完成", LogHelper.Log4NetLevel.Info);
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("初始化仓库出现错误\n" + ex, LogHelper.Log4NetLevel.Error);
            }

            foreach (var item in ProgramSetting.APIConfig)
            {
                JsonPostModel jpm = new JsonPostModel();
                jpm.Agent    = JsonPostModelAgent.Client.ToString();
                jpm.DataType = JsonPostModelDataType.AllUserTable.ToString();
                jpm.Data     = RepoDataSourcePermission.RepoPermissons;
                encryptsJson = EncryptsAndDecryptsHelper.Encrypt(JsonConvert.SerializeObject(jpm), item.SecretKey, item.IV);
                if (!WebFunctionHelper.PostToAPI(encryptsJson, item.APIurl, item.SecretKey, item.IV))
                {
                    LogHelper.WriteLog("初始化时发送所有仓库信息出现错误", LogHelper.Log4NetLevel.Error);
                }

                // 初始化 读取用户组信息
                try
                {
                    groupList.userGroup = SVNHelper.GetAllUserAndGroup();
                    LogHelper.WriteLog("用户与用户组信息初始化完成", LogHelper.Log4NetLevel.Info);
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLog("初始化用户信息出现错误\n" + ex, LogHelper.Log4NetLevel.Error);
                }

                // 初始化 读取所有用户的密码表
                try
                {
                    SVNHelper.htpasswdRead();
                    LogHelper.WriteLog("用户密码表信息初始化完成", LogHelper.Log4NetLevel.Info);
                }
                catch (Exception ex)
                {
                    LogHelper.WriteLog("初始化用户密码表信息出现错误\n" + ex, LogHelper.Log4NetLevel.Error);
                }

                jpm.Agent    = JsonPostModelAgent.Client.ToString();
                jpm.DataType = JsonPostModelDataType.AllAuthInfo.ToString();
                jpm.Data     = htpasswdUserAndPassword.UsersTable;
                encryptsJson = EncryptsAndDecryptsHelper.Encrypt(JsonConvert.SerializeObject(jpm), item.SecretKey, item.IV);
                if (!WebFunctionHelper.PostToAPI(encryptsJson, item.APIurl, item.SecretKey, item.IV))
                {
                    LogHelper.WriteLog("初始化时发送用户密码信息出现错误", LogHelper.Log4NetLevel.Error);
                }
            }



            LogHelper.WriteLog("启动文件监控", LogHelper.Log4NetLevel.Info);

            // 启动仓库权限文件监控
            try
            {
                SVNFileWatcherHelper fwh = new SVNFileWatcherHelper();
                fwh.WatcherStrat(ProgramSetting.Repositoriespath, "VisualSVN-SvnAuthz.ini");
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("启动 VisualSVN-SvnAuthz.ini 监控出现错误: " + ex.ToString(), LogHelper.Log4NetLevel.Error);
                throw;
            }

            // 启动htpasswd文件监控
            try
            {
                htpasswdWatcher hw = new htpasswdWatcher();
                hw.WatcherStrat(ProgramSetting.Repositoriespath, "htpasswd");
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("启动 htpasswd 监控出现错误: " + ex.ToString(), LogHelper.Log4NetLevel.Error);
                throw;
            }

            // 启动用户组文件监控
            try
            {
                groupFileWatcher gfw = new groupFileWatcher();
                gfw.WatcherStrat(ProgramSetting.Repositoriespath, "groups.conf");
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog("启动 groups.conf 监控出现错误: " + ex.ToString(), LogHelper.Log4NetLevel.Error);
                throw;
            }

            RemoteCommandMonitoring.CheckRemoteCommand();


            Console.WriteLine("程序启动");
            LogHelper.WriteLog("程序启动完成.", LogHelper.Log4NetLevel.Info);
        }
Example #19
0
    void IncreaseLEBIAN_VERCODE(bool forceUpdate, int update_along)
    {
        var           manifestPath = Application.dataPath + "/Plugins/Android/AndroidManifest.xml";
        var           lines        = File.ReadAllLines(manifestPath);
        StringBuilder sb           = new StringBuilder();

        foreach (var line in lines)
        {
            if (line.Contains("\"LEBIAN_VERCODE\""))
            {
                var ver_temps = line.Split('=');
                for (int j = 0; j < ver_temps.Length; ++j)
                {
                    if (j != ver_temps.Length - 1)
                    {
                        sb.Append(ver_temps[j]);
                        sb.Append('=');
                    }
                    else
                    {
                        // 读取apk版本号
                        string apkVersionPath = ABPackHelper.VERSION_PATH + "apk_version.txt";
                        if (forceUpdate)
                        {
                            apkVersion++;
                            if (File.Exists(apkVersionPath))
                            {
                                File.Delete(apkVersionPath);
                            }
                            File.WriteAllText(apkVersionPath, apkVersion.ToString());
                            SVNHelper.CommitVersion();
                        }
                        sb.Append('"').Append(apkVersion).Append("\"/>\n");
                    }
                }
            }
            else if (line.Contains("\"ClientChId\"") && update_along == 0)
            {
                var ver_temps = line.Split('=');
                for (int j = 0; j < ver_temps.Length; ++j)
                {
                    if (j != ver_temps.Length - 1)
                    {
                        sb.Append(ver_temps[j]);
                        sb.Append('=');
                    }
                    else
                    {
                        sb.Append("\"PATCH_V3\"/>\n");
                    }
                }
            }
            else
            {
                sb.AppendLine(line);
            }
        }
        File.Delete(manifestPath);
        sb.Replace("$bundleidentifier$", PlayerSettings.applicationIdentifier);
        File.WriteAllText(manifestPath, sb.ToString());
    }