2011-01-14 20 views
6

Sto usando Wix 3.x e l'utente dovrebbe essere in grado di scegliere la directory di destinazione. Il mio Setup.wxs è attualmente qui: http://pastebin.com/uH1EjbDQWix - Directory di installazione personalizzata

Qual è il modo più semplice per chiedere all'utente una directory di destinazione personalizzata? (INSTALLDIR/TARGETDIR ?!) Ho visto un esempio in cui le persone costruiscono le proprie pagine di dialogo ma questo non è veramente necessario, vero?

Aggiornamento:

Quando aggiungo

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

dopo <UIRef Id="WixUI_Mondo" /> ma prima </Product> ottengo il seguente errore:

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

Ora, quando rimuovo <UIRef Id="WixUI_Mondo" /> posso costruire la messa a punto . Ma la finestra di dialogo "Scegli tipo di installazione" (Completa, Tipica, Personalizzata) non viene più mostrata. E un'altra cosa strana: a volte appare una finestra di dialogo che indica che calcola lo spazio su disco (ha un pulsante Annulla), ma alla fine non si chiude mai da solo. Quando lo chiudo posso ancora continuare. C'è un modo per risolvere questo in modo semplice?

Grazie, Philip

risposta

9

L'elemento UIRef si riferisce a una delle sequenze standard dell'interfaccia utente fornite da WiX:

  • WixUI_Mondo
  • WixUI_Advanced
  • WixUI_FeatureTree
  • WixUI_InstallDir
  • WixUI_Minimal

È posso usarne solo uno di queste sequenze nel tuo programma di installazione. Ognuno di questi ha una serie di dialoghi. Per informazioni su quali dialoghi sono inclusi in ciascuna di queste sequenze, lo WiX wiki ha una buona panoramica.

WixUI_Mondo consente all'utente di specificare la directory di installazione se sceglie un'installazione personalizzata. Solo WixUI_Mondo consente all'utente di scegliere un'installazione tipica, personalizzata o completa.

Il modo più semplice per consentire all'utente di scegliere la directory di installazione consiste nell'utilizzare la sequenza di dialogo WixUI_InstallDir.

Il programma di installazione di SharpDevelop utilizza la sequenza di dialogo WixUI_FeatureTree.

Quindi, se uno dei set standard di finestre di dialogo fornito da WiX non è quello che si desidera, si potrebbe guardare customising the dialog sequence. Generalmente le tue finestre di dialogo personalizzate sono l'ultima risorsa.

+0

Ciao Matt, grazie per questa risposta completa! – Philip

0

Questo collegamento spiega come farlo in modo semplice.

link UIRef

+0

Grazie per la risposta, non funziona ancora come previsto. Ma ho aggiornato la mia domanda. – Philip

0

IsWiX supporta questa funzione. Date un'occhiata a:

IsWiXMerges.wxs

IsWiXInstaller.wxs

Il trucco è che sto usando una directory di nome INSTALLLOCATION insieme a un'UIRef di WiXUI_ *. Questo è ciò che il WiXUI usa in modo simile al modo in cui InstallShield usa INSTALLDIR e Visual Studio utilizza TARGETDIR.

Problemi correlati