2011-01-14 17 views
6

Estoy usando Wix 3.x y el usuario debería poder elegir el directorio de destino. Mi Setup.wxs es actualmente así: http://pastebin.com/uH1EjbDQWix - Directorio de instalación personalizada

¿Cuál es la forma más sencilla de pedirle al usuario un directorio de destino personalizado? (INSTALLDIR/TARGETDIR ?!) He visto un ejemplo en el que las personas construyen sus propias páginas de diálogo, pero esto no es realmente necesario, ¿o sí?

Actualización:

Cuando agrego

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

después <UIRef Id="WixUI_Mondo" /> pero antes </Product> me sale el siguiente error:

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

Ahora cuando quito <UIRef Id="WixUI_Mondo" /> puedo construir la instalación . Pero el diálogo "Elegir tipo de configuración" (Completo, Típico, Personalizado) ya no se muestra. Y otra cosa extraña: a veces aparece un cuadro de diálogo que indica que calcula el espacio en el disco (tiene un botón para cancelar), pero finalmente nunca se cierra solo. Cuando lo cierro todavía puedo continuar. ¿Hay alguna manera de arreglar esto de una manera simple?

Gracias, Felipe

Respuesta

9

El elemento UIRef se refiere a una de las secuencias de interfaz de usuario estándar proporcionados por WiX:

  • WixUI_Mondo
  • WixUI_Advanced
  • WixUI_FeatureTree
  • WixUI_InstallDir
  • WixUI_Minimal

Usted solo puedo usar uno de estas secuencias en tu instalador. Cada uno de estos tiene un conjunto de diálogos. Para obtener información sobre qué diálogos se incluyen en cada una de estas secuencias, el WiX wiki tiene una buena visión general.

El WixUI_Mondo permite al usuario especificar el directorio de instalación si elige una instalación personalizada. Solo WixUI_Mondo permite al usuario elegir una instalación típica, personalizada o completa.

La manera más simple de permitir que el usuario elija el directorio de instalación es usar la secuencia de diálogo WixUI_InstallDir.

El propio instalador de SharpDevelop utiliza la secuencia de diálogo WixUI_FeatureTree.

Así que si uno de los juegos de diálogos estándar proporcionados por WiX no es lo que desea, puede mirar customising the dialog sequence. La creación de sus propios cuadros de diálogo personalizados es generalmente el último recurso.

+0

Hola Matt, gracias por esta respuesta integral! – Philip

0

Este enlace se explica cómo hacerlo de forma sencilla.

link UIRef

+0

Gracias por su respuesta, todavía no funciona como se esperaba. Pero actualicé mi pregunta. – Philip

0

IsWiX soporta esta característica. Echar un vistazo a:

IsWiXMerges.wxs

IsWiXInstaller.wxs

El truco es que estoy usando un INSTALLLOCATION llamado Directorio junto con una UIRef de WiXUI_ *. Esto es lo que usa WiXUI de forma similar a como InstallShield usa INSTALLDIR y Visual Studio usa TARGETDIR.

Cuestiones relacionadas