Domanda

Sto cercando di personalizzare la finestra di avanzamento WiX standard (voglio renderlo mostrare l'ActionData). Ho seguito guida di Neil alla personalizzazione dialoghi ma il problema è che l'originale ProgressDlg è ancora mostrata al posto mio.

Credo di sapere il perché: se si guarda al fonte di ProgressDlg si può vedere questo blocco di codice:

   <InstallUISequence>
    <Show Dialog="ProgressDlg" Before="ExecuteAction" />
  </InstallUISequence>

Quindi, piuttosto che in corso di pubblicazione da un'altra finestra, come la maggior parte delle finestre di dialogo sono, esso viene attivato direttamente come parte del InstallUISequence . Allora, come faccio a ignorare questo?

È stato utile?

Soluzione

Sembra che la finestra di avanzamento deve essere l'ultima cosa al InstallUISequence prima ExecuteAction - altrimenti, perché il progresso finestre di dialogo sono modale, si dimostra quindi nascosto immediatamente.

La mia soluzione è quindi solo per assicurarsi che la mia finestra di avanzamento personalizzato viene visualizzato dopo quella esistente:

  <InstallUISequence>
    <Show Dialog="CustomProgressDlg" After="ProgressDlg" />
  </InstallUISequence>

Altri suggerimenti

@Samuel, si sta lavorando come Bob ha dichiarato: "Fino a quando non fanno riferimento ProgressDlg", ma questa affermazione non è preciso. Hai bisogno di trovare tutti i riferimenti a ProgressDlg, ma trovarli nelle fonti Wix. Allora avete bisogno di creare la propria versione di qualsiasi finestra di dialogo che fa riferimento al ProgressDlg ed è incluso per la configurazione (uso diretto o indiretto di esso!), Al fine di renderlo anche riferimento vostra finestra di dialogo personalizzato.

Ho provato questo per risolvere lo stesso problema. Per utilizzare ad esempio. l'interfaccia utente FeatureTree sequenza si dovrà creare le proprie versioni dei seguenti finestre di dialogo, oltre alla ProgressDlg:

  • MaintenanceWelcomeDlg
  • ResumeDlg
  • WelcomeDlg

Questo è perché essi definiscono una Mostra elemento che fa riferimento a ProgressDlg.

ProgressDlg è prevista solo quando si fa riferimento ad esso. Se si desidera sostituirlo, personalizzare la sequenza di dialogo di non fare riferimento a ProgressDlg.

@Klaus, per fortuna si non hanno ri-creare le proprie versioni del dialogo con v3.11.1. Nel InstallUISequence, è possibile ignorare la finestra di dialogo di sequenza per es.

<Show Dialog="WelcomeDlg" Before="ProgressDlgCustom">NOT Installed OR PATCH</Show>

Assicurati si omette il Mostra / @ Override -. Questa era la condizione esatta dal WelcomeDlg

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top