使用Wix重命名现有应用文件夹实现高可用应用快速回退的可行性咨询
Wix 实现安装前重命名应用文件夹说明
可以实现,你可以通过Wix的自定义动作(Custom Action)完成上述需求,具体操作如下:
- 触发时机选择在
InstallExecuteSequence的InstallValidate节点之前执行重命名逻辑,该阶段属于安装事务的前置准备阶段,不会触发文件占用的锁定冲突 - 重命名逻辑可以自行编写C#/C++自定义动作程序,也可以直接调用Wix内置的
QtExecCmdLine动作执行系统重命名命令,参考配置代码如下:
<CustomAction Id="RenameOldAppDir" Directory="APPLICATIONFOLDER" ExeCommand='cmd /c ren "[APPLICATIONFOLDER]" "AppBackup_[CurrentBuildTime]" ' Execute="deferred" Return="check" Impersonate="no" /> <InstallExecuteSequence> <Custom Action="RenameOldAppDir" Before="InstallValidate">NOT REMOVE AND NOT UPGRADINGPRODUCTCODE</Custom> </InstallExecuteSequence>
- 需额外补充判断逻辑:仅在目标路径下存在旧版本应用文件夹时才执行重命名,避免空路径执行报错
- 所有逻辑全部集成在本地安装包内,无联网依赖,完全适配离线网络部署场景
- 新版本安装故障时,可以手动将备份的重命名文件夹改回原名称完成回退,也可以额外编写回滚自定义动作,安装失败时自动还原文件夹
内容的提问来源于stack exchange,提问作者Kaden.Goodell
相关产品推荐
相关产品推荐

