Wix - Пользовательский каталог установки
Я использую Wix 3.x, и пользователь должен иметь возможность выбрать целевой каталог. Мой Setup.wxs в настоящее время здесь: http://pastebin.com/uH1EjbDQ
Как проще всего попросить пользователя указать целевой каталог? (INSTALLDIR/TARGETDIR?!) Я видел пример, в котором люди создают свои собственные диалоговые страницы, но в этом нет необходимости, не так ли?
Обновить:
Когда я добавлю
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/>
<UIRef Id="WixUI_InstallDir" />
после <UIRef Id="WixUI_Mondo" />
но прежде </Product>
Я получаю следующую ошибку:
The primary key 'ExitDialog/Finish/EndDialog/Return/1' is duplicated in table 'ControlEvent'. Please remove one of the entries or rename a part of the primary key to avoid the collision. (LGHT0130) - C:\delivery\Dev\wix30_public\src\ext\UIExtension\wixlib\WixUI_Mondo.wxs:44
Теперь, когда я удаляю <UIRef Id="WixUI_Mondo" />
Я могу построить установку. Но диалоговое окно "Выбор типа настройки" ("Завершено", "Типовое", "Пользовательское") больше не отображается. И еще одна странная вещь: иногда всплывает диалоговое окно, сообщающее, что оно рассчитывает дисковое пространство (у него есть кнопка отмены), но в итоге оно никогда не закрывается само по себе. Когда я закрываю его, я все еще могу продолжать. Есть ли способ исправить это простым способом?
Спасибо Филип
3 ответа
Элемент UIRef относится к одной из стандартных последовательностей пользовательского интерфейса, предоставляемых WiX:
- WixUI_Mondo
- WixUI_Advanced
- WixUI_FeatureTree
- WixUI_InstallDir
- WixUI_Minimal
Вы можете использовать только одну из этих последовательностей в вашем установщике. У каждого из них есть набор диалогов. Для получения информации о том, какие диалоги включены в каждую из этих последовательностей, вики WiX имеет хороший обзор.
WixUI_Mondo позволяет пользователю указать каталог установки, если он выбирает выборочную установку. Только WixUI_Mondo позволяет пользователю выбрать типичную, пользовательскую или полную установку.
Самый простой способ позволить пользователю выбрать каталог установки - использовать последовательность диалогов WixUI_InstallDir.
Собственная программа установки SharpDevelop использует последовательность диалогов WixUI_FeatureTree.
Поэтому, если один из стандартных наборов диалогов, предоставляемых WiX, не тот, который вам нужен, вы можете посмотреть на настройку последовательности диалогов. Создание собственных пользовательских диалогов, как правило, является последним средством.
Эта ссылка объясняет, как это сделать простым способом.
IsWiX поддерживает эту функцию. Взгляни на:
Хитрость в том, что я использую каталог с именем INSTALLLOCATION вместе с UIRef из WiXUI_*. Это то, что использует WiXUI аналогично тому, как InstallShield использует INSTALLDIR, а Visual Studio использует TARGETDIR.