В настоящее время я настроил Wix_InstallDirDlg, чтобы пользователь мог задать ключ реестра при установке. Существует настраиваемый диалог, который отображается после InstallDirDlg и MaintenanceTypeDlg, так что он обслуживает как сценарии установки, так и восстановления.
Настраиваемое диалоговое окно имеет одно текстовое поле, которое связано со свойством. Это свойство имеет поиск в реестре, поэтому, если пользователь исправляет или обновляет предыдущее значение, сохраняется и, следовательно, отображается в настраиваемом диалоговом окне для проверки пользователем. Диалог отлично работает при установке, и создается раздел реестра. Однако при восстановлении появляется настраиваемое диалоговое окно с введенным правильным значением реестра (так что RegistrySearch работает), но когда восстановление завершено, значение ключа остается пустым.
<Property Id='SERVER_LISTEN_URL'>
<RegistrySearch Id='ServerListenUrlRegSearch' Root='HKLM'
Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)'
Name='ServerListenUrl'
Type='raw' Win64='no' />
</Property>
<Component Id="RegistryEntries" Guid="0234974B-6158-4312-90A7-56869809B42E">
<RegistryKey Id="ServerRegKey"
Root="HKLM"
Key='SOFTWARE\$(var.Manufacturer)\$(var.Name)'
Action='createAndRemoveOnUninstall'>
<RegistryValue Id="ServerListenUrlRegVal"
Name='ServerListenUrl'
Value='[SERVER_LISTEN_URL]'
KeyPath='yes'
Type='string' />
</RegistryKey>
</Component>
<Dialog Id="SettingsDlg">
<Control Id="ListenUrl" Type="Edit" X="20" Y="100" Width="320" Height="18" Property="SERVER_LISTEN_URL" Indirect="no" />
</Dialog>
Что я сделал не так?