【问题标题】:Disable Checkbox in WIX with condition element使用条件元素禁用 WIX 中的复选框
【发布时间】:2014-04-12 05:28:15
【问题描述】:

我正在尝试根据项目配置禁用 Wix 复选框。到目前为止,它没有奏效。有人知道如何让它工作吗?

<Control
  Id="cbxXXX"
  Type="CheckBox"
  Property="XXX"
  X="20"
  Y="100"
  Width="290"
  Height="12"
  Text="xxxx"
  CheckBoxValue="True"
>
  <Condition Action="disable>$(var.Project.Configuration) = "DEBUG</Condition>
</Control>

【问题讨论】:

    标签: wix wix3.5 wix3.6 wix3.7 wix-extension


    【解决方案1】:

    意识到这是一篇旧帖子,但这很可能是因为对话框是在运行时创建的,而您正在尝试访问编译时变量,即预处理器变量。

    要解决此问题,请设置一个新属性,例如
    CONFIGURATION$(var.Project.Configuration)

    像以前一样访问该属性:
    &lt;Condition Action="disable"&gt;CONFIGURATION = "DEBUG" &lt;/Condition&gt;

    【讨论】:

      【解决方案2】:

      我对 WIX GUI 修改几乎没有经验,但您需要了解的关于 MSI 属性的一个概念是您可以使用 Property={}“取消定义”它们。

      一旦定义了任何值,属性将无法通过逻辑测试,例如 NOT UPGRADINGPRODUCTCODE,因为检查的属性具有值。 NOT UPGRADINGPRODUCTCODE 等于“此属性未定义,不存在”。要取消选中 GUI 中的复选框,您需要这个未定义的状态 - 我知道对于认为检查状态是由于诸如 0 表示未选中和 1 表示已选中的值的开发人员来说,这是非常违反直觉的。我听说 VB6 开发人员可能更熟悉“未定义的概念”。

      有关 MSI GUI 的讨论,请参阅此线程:How to set a check box to "unchecked" from the msiexec command line?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-03
        • 1970-01-01
        • 2017-01-20
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多