Ответ 1
Я не могу найти какую-либо документацию по этому поводу в любом месте, но небольшое количество экспериментов + чтение через исходный код показывает, что это довольно просто - просто установите Name
элемента управления (например, флажок) на имя записи переменная (а не переменная WiX - они разные), например (см. Запись пользовательских пользовательских настроек для получения дополнительной информации о том, где это поставить)
<Checkbox Name="MyCheckBox" ...>Hello, checkbox</Checkbox>
Если вам нравится, вы можете определить переменную записи под вашим пакетом, чтобы инициализировать ее до некоторого значения (используйте 1 для "ticked" и 0 для "unticked" с флажками)
<Variable Name="MyCheckBox" Value="1" />
Однако его не требуется - переменная будет создана автоматически для вас в любом случае. Обратите внимание, что это должно быть Variable
, а не WixVariable
- это разные.
Наконец, чтобы установить свойство MSI на основе этой переменной, добавьте элемент MsiProperty
в качестве дочернего элемента MsiPackage
, так
<MsiPackage Name="MyMsi.msi" ...>
<MsiProperty Name="SOMEPROPERTY" Value="[MyCheckBox]" />
</MsiPackage>
Значение свойства MSI "SOMEPROPERTY" будет затем установлено на 0 или 1 в зависимости от установленного состояния вашего флажка.