tipos son que puedo ofrece las interfaz hacer funciones elementos cuáles con ayuda wix installer wix3

son - ¿Cómo construir una interfaz de usuario de instalador de WiX mínima sin una página de licencia?



wix ayuda (5)

Consulte la respuesta a una pregunta relacionada , la secuencia de comandos WiX con solo las pantallas Bienvenida y Completada , para obtener la IU mínima más simple:

  1. WelcomeDlg
  2. Instalación en progreso
  3. Diálogo de salida

Me gustaría usar el instalador WixUI_Minimal, pero no quiero la página de licencia. ¿Cómo puedo hacer esto?


La clave es crear una interfaz de usuario personalizada y conectar diferentes páginas. Ver la página en WixWiki

Desea obtener el código mínimo de WixUI y modificarlo un poco. En lugar del cuadro de diálogo de bienvenida de WelcomeEulaDlg, desea utilizar WelcomeDlg. Ajuste las referencias, y conecte el botón Siguiente en el WelcomeDlg al siguiente diálogo en la pila, que sería el PrepareDlg.

Código completo:

<UI Id="WixUI_Minimal"> <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" /> <Property Id="WixUI_Mode" Value="Minimal" /> <DialogRef Id="ErrorDlg" /> <DialogRef Id="FatalError" /> <DialogRef Id="FilesInUse" /> <DialogRef Id="MsiRMFilesInUse" /> <DialogRef Id="PrepareDlg" /> <DialogRef Id="ProgressDlg" /> <DialogRef Id="ResumeDlg" /> <DialogRef Id="UserExit" /> <!-- This is the welcome dialog you specified--> <DialogRef Id="WelcomeDlg" /> <!-- Hook the new welcome dialog to the next one in the stack--> <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="PrepareDlg">1</Publish> <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish> <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish> <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish> <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish> <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish> <Property Id="ARPNOMODIFY" Value="1" /> </UI> <UIRef Id="WixUI_Common" />


La forma poco tecnológica de evitar esto es simplemente establecer la propiedad LicenseAccepted en 1 y poner alguna información útil de tipo de LicenseAccepted en el cuadro de licencia. Esto significa que el usuario no tiene que hacer clic en el cuadro y no tiene que preocuparse por crear un diálogo adicional :)

Ejemplo:

<Property Id="LicenseAccepted" Value="1"/>


La respuesta de @Ran Davidovitz es muy buena

pero sé cuidadoso

<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">1</Publish>

debe tener Order = "2" , o no puede funcionar.


Simplemente usaría una de las IU de WiX ya creadas y anularía la secuencia (la aumentaría para que anule la configuración anterior):

<Product> ... <UI> <UIRef Id="WixUI_InstallDir" /> <!-- Skip license dialog --> <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg" Order="2">1</Publish> <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">1</Publish> </UI> <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" /> ... </Product>