コード例 #1
0
        private string ExcuteDeploy(FormHandler.FormItem fileItem)
        {
            var re = DeployExcutor(fileItem);

            try
            {
                if (_formHandler == null)
                {
                    return(re);
                }

                if (!string.IsNullOrEmpty(re))
                {
                    return(re);
                }

                if (string.IsNullOrEmpty(ProjectPublishFolder) || !Directory.Exists(ProjectPublishFolder))
                {
                    return(re);
                }

                //保存参数
                var formArgs = _formHandler.FormItems.Where(r => r.FileBody == null || r.FileBody.Length < 1).ToList();
                if (formArgs.Any())
                {
                    var path    = Path.Combine(ProjectPublishFolder, "antdeploy_args.json");
                    var content = JsonConvert.SerializeObject(formArgs);
                    File.WriteAllText(path, content, Encoding.UTF8);
                }

                SaveCurrentVersion(ProjectPublishFolder);
            }
            catch (Exception)
            {
                //ignore
            }

            var projectRootPath = new DirectoryInfo(ProjectPublishFolder).Parent;

            if (projectRootPath == null || !projectRootPath.Exists)
            {
                return(re);
            }
            //每次发布完成后清理老的发布历史记录 只清理自己项目的
            //防止别的项目正在回滚到某个版本,你这边发现这个版本已经过时了就删除了
            Setting.ClearOldFolders(ProviderName.Equals("iis") || ProjectName.Equals("linux"), projectRootPath.Name, Log);
            return(re);
        }