Vbscript Wix:自定义操作设置的属性上的功能条件

Vbscript Wix:自定义操作设置的属性上的功能条件,vbscript,wix,custom-action,Vbscript,Wix,Custom Action,在我的WIX安装包中,我有一个包含合并模块的功能,必须有条件地安装。应使用自定义操作设置的属性来计算条件。以下是我的WXS中的外观: <Directory Id="INSTALLLOCATION" Name="testSetup"> <Merge Id="mergeA" Language="1033" SourceFile="test.msm" DiskId="1" /> </Directory> <InstallExecuteSequence

在我的WIX安装包中,我有一个包含合并模块的功能,必须有条件地安装。应使用自定义操作设置的属性来计算条件。以下是我的WXS中的外观:

<Directory Id="INSTALLLOCATION" Name="testSetup">
    <Merge Id="mergeA" Language="1033" SourceFile="test.msm" DiskId="1" />
</Directory>

<InstallExecuteSequence>
  <Custom Action="find" Before="CostInitialize">Not Installed</Custom>
</InstallExecuteSequence>

<CustomAction Id="find" Return="check" BinaryKey="script" VBScriptCall="findA" />
<Binary Id="script" SourceFile="script.vbs" />

因此,使用通过自定义操作设置的属性,我无法使功能条件发挥作用。知道我做错了什么吗?

您的自定义操作当前只计划在
InstallExecuteSequence
中运行。如果您的安装通过
InstallUISequence
运行,则
功能仍将启用。除非您明确指定以“静默”方式运行安装,否则安装顺序是无效的

幸运的是,修复很容易。将以下内容添加为InstallExecuteSequence的对等项:

<InstallUISequence>
  <Custom Action="find" Before="CostInitialize">Not Installed</Custom>
</InstallUISequence>

未安装
Function findA
     Session.Property("pathA") = "test"
End Function
<InstallUISequence>
  <Custom Action="find" Before="CostInitialize">Not Installed</Custom>
</InstallUISequence>