Не установлено свойство пользовательского интерфейса удаления WiX - PullRequest
2 голосов
/ 26 января 2011

Я пытаюсь установить свойство через пользовательский интерфейс WiX, который используется во время удаления. Я сделал это успешно во время установки. Есть ли разница в последовательности, которая мешает мне получить заданное свойство? Кажется, что моя собственность, REMOVEDATABASES никогда не устанавливается. Или, может быть, мне нужно опубликовать это? Вот некоторые фрагменты кода. Любая помощь приветствуется.

Моя собственность:

<Property Id="REMOVEDATABASES" Value="0" />

Как мне добраться до диалогового окна, которое позволяет пользователю установить свойство:

<UI Id="WixUI_App">
  ...
  <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed</Publish>

  <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>

  <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
  <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="SetConfigurationUnInstallDlg">1</Publish>
  <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
   ...
</UI>

Мой диалог, использующий свойство:

   <Dialog Id="SetConfigurationUnInstallDlg" Width="370" Height="270" Title="Uninstall option">
    <Control Id="NextUninstall" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)"  >
      <Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
    </Control>
    <Control Id="BackUninstall" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" >
      <Publish Event="SpawnDialog" Value="MaintenanceTypeDlg">1</Publish>
    </Control>
    <Control Id="CancelUninstall" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
      <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
    </Control>

     ....

    <Control Id="UnistallDBLabel" Type="Text" X="20" Y="60" Width="80" Height="14" NoPrefix="yes" Text="Unistall Database?" />
    <Control Id="RadioButtonGroupID" Type="RadioButtonGroup" X="20" Y="58" Width="305" Height="100" Property="REMOVEDATABASES" Text="Remove Databases?" Default="no">
      <RadioButtonGroup Property="REMOVEDATABASES">
        <RadioButton Value="0" X="100" Y="0" Width="200" Height="10" Text="No" />
        <RadioButton Value="1" X="100" Y="20" Width="200" Height="10" Text="Yes" />
      </RadioButtonGroup>
    </Control>
  </Dialog>

И, наконец, мой код, который пытается использовать свойство:

      <Component Id="cmpDatabaseUnInstall" Guid="B6D21CE5-9470-4D78-8760-E9AE04A91AB4"  KeyPath="yes">
    <Condition>REMOVEDATABASES = "1"</Condition>
    <sql:SqlDatabase Id="masterDB" Server="[SERVER]" Instance="[INSTANCE_NAME]" Database="master"
                   CreateOnInstall="no" ConfirmOverwrite="yes" DropOnUninstall="no" ContinueOnError="no"
                   CreateOnReinstall="no" CreateOnUninstall="no" DropOnInstall="no" DropOnReinstall="no">
    </sql:SqlDatabase>
    <sql:SqlScript Id="DropAllDatabases"
                   SqlDb="masterDB" BinaryKey="DropAllDatabases"
                   ContinueOnError="yes" ExecuteOnInstall="no" ExecuteOnReinstall="no" ExecuteOnUninstall="yes"
                   Sequence="1"/>
  </Component>

Спасибо, Скотт

Ответы [ 2 ]

3 голосов
/ 27 января 2011

Свойства и таблицы, измененные во время установки, не сохраняются. Вы, вероятно, хотите сделать следующее:

Шаблон "Запомнить свойство" набора инструментов WiX

0 голосов
/ 27 января 2011

Ваша собственность помечена как Безопасная (то есть указана в SecureCustomProperties )?Если нет, его значение может не попасть в последовательность выполнения.Поиск в журнале что-то вроде Ignoring disallowed property должно подтвердить или опровергнуть это.

...