Изменение свойства не влияет на компонент

Я пытаюсь настроить удаление wix, я добавил настраиваемое диалоговое окно, в котором пользователь может установить или снять флажок. Если пользователь снимает флажок, файл не удаляется. В чем проблема, не могли бы вы помочь? Почему это не работает для изменения собственности?

  <UI>
  <Dialog Id="UninstallDlg" Width="370" Height="270" Title="!(loc.WelcomeDlg_Title)">
    <Control Id="NextB" Type="PushButton" X="248" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" />
    <Control Id="BackB" Type="PushButton" X="192" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" />

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

    <Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.CustomizeDlgBannerBitmap)" />
    <Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="2" />
    <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="2" />
    <Control Id="Title" Type="Text" X="15" Y="6" Width="210" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.CustomizeDlgTitle)" />
  </Dialog>
</UI>


<Component Id="FullDelete" Guid="{469E4DE7-A031-449F-8B75-D4CBC94F88B6}">
        <Condition>FULLUNINSTALL = 0</Condition>
        <RemoveFile Id="RemoveDatabase" Name="*.sdf" On="uninstall"/>
      </Component>


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

2 ответа

Решение

Я решил эту проблему с помощью пользовательских действий, в моем случае это лучший способ, как мне кажется.

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

И код в продукте:

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

Если пользователь снимает флажок, настраиваемое действие работает:

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

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

Вы не можете изменить выбор компонентов непосредственно в GUI. На данный момент условия уже оценены. Вам нужно будет включить компонент в функцию, а ваши элементы управления добавят и удалят функцию, как описано в этом ответе: Wix 3.5, Установите компоненты на основе флажков.

Другие вопросы по тегам