Если вы устанавливаете атрибут ConfigurableProperty для элемента Feature, который вы пытаетесь установить, похоже, он не позволяет изменять состояние кнопки «Обзор» (или, возможно, любого элемента управления, связанного с событием SelectionBrowse). Вы можете изменить состояние после его установки, по-видимому, поэтому действие скрытия будет работать, если вы пытаетесь изменить / удалить функцию. Я не нашел способ обойти это; Я не уверен, что это конструкция Windows Installer или что-то в WiX по вине. Я предполагаю, что первое пока.
РЕДАКТИРОВАТЬ (первоначально Дэвид Дж. Антуан в дополнительном ответе)
Вы должны добавить условие к событию SelectionBrowse, а также саму кнопку Обзор. Используя исходный код кнопки «Обзор», он будет выглядеть примерно так:
<Control Id="Browse" Type="PushButton" X="294" Y="210" Width="66" Height="17" Text="!(loc.CustomizeDlgBrowse)">
<Publish Event="SelectionBrowse" Value="BrowseDlg">NOT Installed AND NOT (UPGRADE = 1)</Publish>
<Condition Action="hide">Installed OR UPGRADE = 1</Condition>
<Condition Action="disable">Installed OR UPGRADE = 1</Condition>
</Control>
К сожалению, мне не удалось отключить кнопку Обзор даже при использовании этого. В лучшем случае он был включен, но ничего не делал при нажатии. Поэтому в обоих случаях я использовал код для его отключения, чтобы избежать путаницы в пользовательском интерфейсе.