2014-10-24 2 views
0

Я пытаюсь запустить настраиваемое действие, когда флажок снят (по умолчанию он отмечен). Я прочитал эту тему, ситуация похожа, как мне кажется. WiX. Run a custom action when a checkbox is checkedwix запускает пользовательское действие, когда флажок установлен/снят флажок

Возможно, важно, чтобы диалог был открыт во время удаления. Таким образом, проблема заключается в том, что свойство не изменяется, если флажок не установлен.

<Control Id="LeaveFiles" 
     Type="CheckBox" 
     Height="18" 
     Width="295" 
     X="26" Y="58" 
     Text="Not to delete custom files" 
     Property="CHECKBOXPROP" 
     CheckBoxValue="1" /> 

и вот моя опора и настраиваемое действие в Product.wxs

<Property Id="CHECKBOXPROP" Secure="yes">1</Property> 

<CustomAction Id="DeleteAll" Directory="APPLICATIONROOTDIRECTORY" ExeCommand="cmd /C RD &quot;./Logs&quot; /s /q" 
       Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" /> 

<InstallExecuteSequence> 
    <Custom Action="DeleteAll" After="RemoveFiles">CHECKBOXPROP=0</Custom> 
</InstallExecuteSequence> 

Также у меня есть вопрос о InstallExecuteSequence - может \ я должен написать CHECKBOXPROP = 0 и удалим = "ALL"? Я ценю любую помощь. Спасибо.

ответ

2

Вы можете использовать следующий код.

Проблема вашего кода заключалась в том, что вы пытались проверить значение свойства zero, которое не определено. Вы указали в своем коде CheckBoxValue = "1", поэтому при значении оно будет равно 1, и не будет никакого значения, если оно не отмечено.

Поэтому напишите условие как <![CDATA[CHECKBOXPROP <> 1]]> Когда значение не равно 1, пользовательское действие будет запущено.

Вам следующий код

<InstallExecuteSequence> 
      <Custom Action="DeleteAll" After="RemoveFiles"><![CDATA[CHECKBOXPROP <> 1]]></Custom> 
</InstallExecuteSequence> 
+0

Большое спасибо. Теперь он отлично работает! – Lili

+0

@Lili, Если он работает, признайте его ответом или вопрос останется без ответа – LeoN

Смежные вопросы