我正在使用 Wix 3.8。
首先,我创建了一个安装程序 (.msi),它在安装过程中执行自定义操作(出于测试目的,它只显示一条消息):
产品元素:
<Product Id="PUT-GUID-HERE" Name="MyProduct"
Version="1.0.1.100" Manufacturer="Foobar Company"
UpgradeCode="PUT-GUID-HERE">
自定义操作
<CustomAction Id="Message1" Script="vbscript">
<![CDATA[
MsgBox("First Install?")
]]>
</CustomAction>
<InstallExecuteSequence>
<Custom Action="Message1"
Before="InstallInitialize">NOT Installed AND NOT REMOVE</Custom>
现在,当我执行我的 .msi 文件时,该消息将显示在我的安装中:
接下来,我修改我的产品代码并增加我的版本号以构建更新:
产品元素:
<Product Id="PUT-GUID-HERE"
Name="MyProduct" Version="1.0.2.100"
Manufacturer="Foobar Company"
UpgradeCode="PUT-GUID-HERE">
关于NOT Installed AND NOT REMOVE
我期望的情况,当我执行更新时不会出现消息框。但它确实:
仅在安装时执行而不在更新时执行的自定义操作的正确条件是什么?