Wix - пользовательский каталог установки

я использую Wix 3.X и пользователь должен иметь возможность выбрать целевой каталог. Моя Подстава.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:deliveryDevwix30_publicsrcextUIExtensionwixlibWixUI_Mondo.wxs:44

теперь, когда я удалить <UIRef Id="WixUI_Mondo" /> Я могу создать настройку. Но диалоговое окно "выбрать тип установки" (полный, Типичный, пользовательский) больше не отображается. И еще одна странная вещь: иногда появляется диалоговое окно, в котором он вычисляет дисковое пространство (у него есть кнопка отмены), но в конечном итоге он никогда не закрывается сам по себе. Когда я закрываю ее, я все еще могу продолжать. Есть ли способ исправить это простым способом?

Спасибо, Филипп

3 ответов


элемент UIRef относится к одной из стандартных последовательностей пользовательского интерфейса, предоставляемых WiX:

  • WixUI_Mondo
  • WixUI_Advanced
  • WixUI_FeatureTree
  • WixUI_InstallDir
  • WixUI_Minimal

в установщике можно использовать только одну из этих последовательностей. Каждый из них имеет набор диалогов. Для получения информации о том, какие диалоги включены в каждую из этих последовательностей Викс Вики есть хороший обзор.

WixUI_Mondo позволяет пользователю указать каталог установки, если они выбирают пользовательскую установку. Только WixUI_Mondo позволяет пользователю выбрать типичную, пользовательскую или полную установку.

самый простой способ позволить пользователю выбрать каталог установки-использовать диалоговую последовательность wixui_installdir.

собственный установщик SharpDevelop использует диалоговую последовательность wixui_featuretree.

Итак, если один из стандартных наборов диалоги, предоставляемые WiX не то, что вы хотите, вы можете посмотреть на настройка последовательности диалоговых окон. Создание собственных диалоговых окон, как правило, является последним средством.


эта ссылка объясняет, как это сделать простым способом.

ссылка UIRef


IsWiX поддерживает эту функцию. Взгляните на:

IsWiXMerges.wxs

IsWiXInstaller.wxs

фокус в том, что я использую каталог с именем INSTALLLOCATION вместе с UIRef WiXUI_*. Это то, что WiXUI использует аналогично тому, как InstallShield использует INSTALLDIR, а Visual Studio использует TARGETDIR.