一,升级工具重构要解决的问题:
在所升级的产品的每个升级项只有两种正常状态(初始release版本状态或是下一release版本状态)的前提下,升级工具在执行一个升级任务前,如果该升级任务的最终效果已经存在,那么要保证升级任务的执行结果不会与之冲突.最终效果已经存在的情况主要有以下几种情况:
1,修改配置文件内容时,不重复增加内容(重复修改值则没关系)
2,增加文件或目录时,可选择是否要覆盖(当涉及到用户自定义内容时不能覆盖,当不涉及到时一般都要覆盖以保持最新)
3,删除文件或目录,不存在就不删除
4,替换操作,如果两者同名,那么直接根据覆盖标志位执行增加操作;如果两者不同名,可当成先删除被替换的内容,再增加替换的内容,增加时可选择是否要覆盖
注:
(1)对于zip文件,解压后的目录名一定要和zip文件名相同;
(2)一般可以整个替换的目录都不涉及到用户自定义内容的!
(3)不会影响升级效果的语句的执行不抛错,影响升级效果的要抛错