Pregunta

Estoy tratando de personalizar el diálogo de progreso WiX estándar (Quiero hacer que se muestre la ActionData). He seguido guía de Neil a la personalización de los diálogos, pero el problema es que la ProgressDlg original todavía está siendo mostrado en lugar de la mía.

Creo que sé por qué: si nos fijamos en la fuente de ProgressDlg se puede ver este bloque de código:

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

Así que en lugar de ser publicado por otro cuadro de diálogo, como la mayoría de los diálogos son, se está activando directamente como parte de la InstallUISequence . Entonces, ¿cómo puedo reemplazar esto?

¿Fue útil?

Solución

Parece que el diálogo de progreso debe ser la última cosa en el InstallUISequence antes ExecuteAction - de lo contrario, ya que los diálogos de progreso son modal, se muestra a continuación, oculta enseguida.

Mi solución, por tanto, es sólo para asegurarse de que mi diálogo de progreso personalizado se muestra después de la existente:

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

Otros consejos

@Samuel, que está trabajando como Bob dijo: "Siempre y cuando no lo hace la referencia ProgressDlg", pero esta afirmación no es exacta. Es necesario encontrar todas las referencias a ProgressDlg, pero encontrarlos en las fuentes de WiX. Luego hay que crear su propia versión de cualquier cuadro de diálogo que hace referencia al ProgressDlg y se incluye por su configuración (uso directo o indirecto de la misma!), Con el fin de que sea también una referencia a su cuadro de diálogo personalizado.

Me han tratado de resolver este problema de la misma. Para utilizando, por ejemplo. FeatureTree la interfaz de usuario de secuencia que tendría que crear sus propias versiones de los siguientes cuadros de diálogo, además de la ProgressDlg:

  • MaintenanceWelcomeDlg
  • ResumeDlg
  • WelcomeDlg

Esto es porque definen un elemento Mostrar el que hace referencia a ProgressDlg.

ProgressDlg está programado sólo cuando se refieren a ella. Si desea sustituirlo, personalizar la secuencia de diálogo para no referirse a ProgressDlg.

@Klaus, afortunadamente No tiene que volver a crear sus propias versiones del diálogo con v3.11.1. En el InstallUISequence, puede anular la secuencia de diálogo por ejemplo.

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

Asegúrese de que se omite el Mostrar / @ anulación -. Esta era la condición exacta de la WelcomeDlg

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top