使用条件元素禁用WIX中的复选框



我正试图根据项目配置禁用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>

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

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

像以前一样访问属性:
<Condition Action="disable">CONFIGURATION = "DEBUG" </Condition>

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

一旦使用任何值定义了属性,则该属性将无法通过逻辑测试(如NOT UPGRADINGPRODUCTCODE),因为检查的属性具有值。NOT UPGRADINGPRODUCTCODE等于"此属性未定义,它不存在"。要取消选中GUI中的复选框,您需要的就是这种未定义的状态——我知道,对于那些认为复选状态是由0表示未选中和1表示已选中等值引起的开发人员来说,这是非常违反直觉的。我被告知VB6开发人员可能更熟悉"未定义的概念"。

关于MSI GUI的一个讨论:如何将复选框设置为";未检查";从msiexec命令行?

相关内容

  • 没有找到相关文章

最新更新