Wix - Пользовательский каталог установки
Я использую Wix 3.x, и пользователь должен иметь возможность выбрать целевой каталог. В настоящее время My Setup.wxs выглядит следующим образом: http://pastebin.com/uH1EjbDQ
Каков самый простой способ попросить пользователя создать целевой целевой каталог? (INSTALLDIR/TARGETDIR?!) Я видел пример, в котором люди создают там собственные диалоговые страницы, но это действительно не нужно, не так ли?
Update:
Когда я добавляю
<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" />
, я могу создать установку. Но диалог "Выбрать тип установки" ( "Полный", "Типичный", "Пользовательский" ) больше не отображается. И еще одна странная вещь: иногда появляется диалоговое окно, в котором указано, что он вычисляет дисковое пространство (у него есть кнопка отмены), но в конечном итоге он никогда не закрывается сам по себе. Когда я его закрываю, я все равно могу продолжить. Есть ли способ исправить это простым способом?
Спасибо, Филипп
Ответы
Ответ 1
Элемент UIRef относится к одной из стандартных последовательностей пользовательского интерфейса, предоставляемых WiX:
- WixUI_Mondo
- WixUI_Advanced
- WixUI_FeatureTree
- WixUI_InstallDir
- WixUI_Minimal
Вы можете использовать только одну из этих последовательностей в своем установщике. Каждый из них имеет набор диалогов. Для получения информации о том, какие диалоги включены в каждую из этих последовательностей, настройку диалоговой последовательности. Создание ваших собственных диалоговых окон, как правило, является последним.
Ответ 2
В этой ссылке объясняется, как сделать это простым способом.
ссылка UIRef
Ответ 3
IsWiX поддерживает эту функцию. Взгляните на:
IsWiXMerges.wxs
IsWiXInstaller.wxs
Фокус в том, что я использую каталог с именем INSTALLLOCATION вместе с UIRef WiXUI_ *. Это то, что WiXUI использует аналогично тому, как InstallShield использует INSTALLDIR, а Visual Studio использует TARGETDIR.