2

我们有一个安装场景,在对产品进行重大升级之前,我们需要
backup某些配置/资源文件,然后再同步它们。

所以我们运行一个自定义操作来备份文件:

<InstallExecuteSequence>
..
      <Custom Action='BackupAppFolder' Before="RemoveFiles">
        <![CDATA[(Installed AND NOT REMOVE="ALL") OR (UPGRADINGPRODUCTCODE)]]>
      </Custom> 
..
</InstallExecuteSequence>

主要升级计划为

<MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="!(loc.DowngradeMessage)"
              Schedule="afterInstallInitialize"/>

“同步”操作计划为

<InstallExecuteSequence>
..
       <Custom Action='ResourceSync' Before="InstallFinalize">
       (Installed AND NOT REMOVE = "ALL" AND NOT WIX_UPGRADE_DETECTED )
             OR (NOT Installed AND WIX_UPGRADE_DETECTED)
       </Custom> 
..
</InstallExecuteSequence>

我想安排ResourceSync操作,使其在
-- 修复/补丁
-- 第二次运行主要升级即安装新产品
-- 次要升级 期间运行

并且不运行
-- 卸载
-- 全新安装
-- 主要升级的第一次运行,即卸载现有产品

编辑:上面的问题是,它也在主要升级的第一阶段运行。

4

1 回答 1

0

接下来试试:

REINSTALL OR PATCH OR (WIX_UPGRADE_DETECTED AND NOT REMOVE="ALL")
于 2013-07-22T07:03:28.657 回答