У меня есть довольно сложный установщик, который я пишу в Wix, который имеет множество пользовательских диалоговых параметров, основанных на том, какие компоненты вы устанавливаете. Как правило, по умолчанию все в порядке, и, следовательно, автоматическая установка будет успешной, но наличие этой настройки помогает.
Что мне интересно, так это то, каковы лучшие практики в Wix для выполнения условий UI? Я заметил, что Wix оценивает все теги <Publish>
независимо от того, оценил ли последний из них значение true, что приводит к большому количеству кода, подобного следующему:
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="Component1Questions" Order="1">INSTALLCOMPONENT1</Publish>
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="Component2Questions" Order="2">NOT INSTALLCOMPONENT1 AND INSTALLCOMPONENT2</Publish>
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="Component3Questions" Order="3">NOT INSTALLCOMPONENT1 AND NOT INSTALLCOMPONENT2 AND INSTALLCOMPONENT3</Publish>
<Publish Dialog="Questions" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">NOT INSTALLCOMPONENT1 AND NOT INSTALLCOMPONENT2 AND NOT INSTALLCOMPONENT3</Publish>
И аналогично в разделах «назад» для каждого диалога. Является ли это наилучшей практикой для этого? Существует ли способ оценки короткого замыкания элементов публикации и выбора первого, возвращающего значение true?