【问题标题】:Wix: Feature Condition on Property set by Custom ActionWix:自定义操作设置的属性的特征条件
【发布时间】:2013-05-08 22:57:16
【问题描述】:

在我的 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" />

由于 level=0 会禁用我设置的功能,仅当路径存在时才安装。

<Feature Id="productFeatA" Title="featA" Level="1">
  <Condition Level="0"><![CDATA[NOT pathA]]></Condition>
  <MergeRef Id="mergeA" />
</Feature>

还有简单的测试VBS脚本:

Function findA
     Session.Property("pathA") = "test"
End Function

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

【问题讨论】:

    标签: vbscript wix custom-action


    【解决方案1】:

    您的自定义操作目前仅计划在InstallExecuteSequence 中运行。如果您的安装通过InstallUISequence 运行,那么Feature 仍将启用。 InstallUISequence 除非您明确指定“安静地”运行安装。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 2023-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多