2011-01-14 20 views
6

J'utilise Wix 3.x et l'utilisateur doit pouvoir choisir le répertoire cible. Mon Setup.wxs est actuellement comme ici: http://pastebin.com/uH1EjbDQWix - Répertoire d'installation personnalisée

Quelle est la manière la plus simple de demander à l'utilisateur un répertoire cible personnalisé? (INSTALLDIR/TARGETDIR ?!) J'ai vu un exemple dans lequel les gens construisent leurs propres pages de dialogue, mais ce n'est pas vraiment nécessaire, n'est-ce pas? Maintenant, quand je retire <UIRef Id="WixUI_Mondo" /> je peux construire la configuration

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

:

Mise à jour:

Quand j'ajoute

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR"/> 
<UIRef Id="WixUI_InstallDir" /> 

après <UIRef Id="WixUI_Mondo" /> mais avant </Product> je reçois l'erreur suivante . Mais la boîte de dialogue "Choisir le type d'installation" (Complet, Typique, Personnalisé) n'est plus affichée. Et une autre chose étrange: Parfois, une boîte de dialogue apparaît, indiquant qu'il calcule l'espace disque (il a un bouton d'annulation), mais finalement il ne se ferme jamais par lui-même. Quand je le ferme, je peux continuer. Existe-t-il un moyen de résoudre ce problème de manière simple?

Merci, Philip

Répondre

9

L'élément UIRef se réfère à l'une des séquences d'interface utilisateur standard fournis par WiX:

  • WixUI_Mondo
  • WixUI_Advanced
  • WixUI_FeatureTree
  • WixUI_InstallDir
  • WixUI_Minimal

Vous peut seulement utiliser un de ces séquences dans votre installateur. Chacun d'entre eux a un ensemble de dialogues. Pour plus d'informations sur les boîtes de dialogue incluses dans chacune de ces séquences, le WiX wiki a un bon aperçu.

Le WixUI_Mondo permet à l'utilisateur de spécifier le répertoire d'installation s'il choisit une installation personnalisée. Seul WixUI_Mondo permet à l'utilisateur de choisir une installation typique, personnalisée ou complète.

La manière la plus simple de permettre à l'utilisateur de choisir le répertoire d'installation est d'utiliser la séquence de dialogue WixUI_InstallDir.

Le propre programme d'installation de SharpDevelop utilise la séquence de dialogue WixUI_FeatureTree.

Donc, si l'un des jeux de dialogues standard fournis par WiX n'est pas ce que vous voulez, vous pouvez regarder customising the dialog sequence. Créer vos propres boîtes de dialogue personnalisées est généralement le dernier recours.

+0

Bonjour Matt, merci pour cette réponse complète! – Philip

0

Ce lien explique comment le faire de manière simple.

link UIRef

+0

Merci pour votre réponse, cela ne fonctionne toujours pas comme prévu. Mais j'ai mis à jour ma question. – Philip

0

IsWiX prend en charge cette fonctionnalité. Jetez un oeil à:

IsWiXMerges.wxs

IsWiXInstaller.wxs

L'astuce est que j'utilise un répertoire nommé INSTALLLOCATION avec un UIRef de WiXUI_ *. C'est ce que le WiXUI utilise de la même manière que InstallShield utilise INSTALLDIR et Visual Studio utilise TARGETDIR.

Questions connexes