Отключить флажок в 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>

person Andre L.A.C Bittencourt    schedule 12.04.2014    source источник


Ответы (2)


Поймите, что это старый пост, но это, скорее всего, потому, что диалог создается во время выполнения, и вы пытаетесь получить доступ к переменным времени компиляции, то есть переменным препроцессора.

Чтобы обойти это, установите новое свойство, например, от
CONFIGURATION до $(var.Project.Configuration).

Получите доступ к собственности, как раньше:
<Condition Action="disable">CONFIGURATION = "DEBUG" </Condition>

person burrt    schedule 01.11.2018

У меня мало опыта изменения графического интерфейса WIX, но одна концепция, которую вам нужно знать о свойствах MSI, заключается в том, что вы можете «отменить определение» с помощью Property = {}.

После определения с любым значением свойство не проходит логический тест, такой как NOT UPGRADINGPRODUCTCODE, потому что проверяемое свойство имеет значение. NOT UPGRADINGPRODUCTCODE равно «это свойство не определено, оно не существует». Чтобы снять флажок в графическом интерфейсе, это неопределенное состояние - это то, что вам нужно - я знаю, что это очень нелогично для разработчика, который может подумать, что состояние проверки связано с такими значениями, как 0 для снятого флажка и 1 для отмеченного. Мне сказали, что разработчики VB6 могут быть более знакомы с "неопределенной концепцией".

В этой теме можно найти обсуждение графического интерфейса пользователя MSI: Как снять флажок в командной строке msiexec?

person Stein Åsmul    schedule 12.04.2014