我有一个现有的WIX安装程序文件,我试图弄明白。在此文件中,我看到定义了两个自定义操作:
<Custom Action="CreateBackup" Before="InstallInitialize">
<![CDATA[Installed]]>
</Custom>
<Custom Action="RestoreBackup" After= "InstallFinalize">
<![CDATA[NOT Installed]]>
</Custom>
CreateBackup函数从远程位置复制一些文件(与此安装程序没有直接关系)。还原将这些文件放回到同一位置。
现在在升级方案中,我看到以下日志记录顺序。我已经把'#34;已安装&#34;括号内:
我对此有几个问题:
我正在使用MajorUpgrade元素。
希望有人能清除这一点。
答案 0 :(得分:1)
我假设您使用WiX MajorUpgrade元素进行升级,因此您需要的条件应该是这样的:
进行升级时,升级时会设置WIX_UPGRADE_DETECTED属性:
http://wixtoolset.org/documentation/manual/v3/xsd/wix/majorupgrade.html
因此,当您要创建备份时,请使用该条件,假设您要在升级时对现有文件(来自旧产品)进行备份。
从您的帖子中确切地说您何时想要进行还原,但如果在升级之后,则使用相同的WIX_UPGRADE_DETECTED属性。
基于Installed属性的那些条件似乎没有多大意义,因为如果安装了当前的MSI的ProductCode,则设置该属性。在该阶段的升级中,它将始终未设置。
这篇文章有关于属性和安装操作的更多信息:
How to add a WiX custom action that happens only on uninstall (via MSI)?