2012-10-24 13 views
24

Sto utilizzando Wix 3.6 per creare un MSI semplice che viene utilizzato internamente. Vorrei sapere se esiste un modo semplice per rimuovere la finestra di dialogo del contratto di licenza.Rimozione della finestra di dialogo della licenza

Grazie per eventuali suggerimenti

+0

Possibile duplicato di [Come costruire un'interfaccia utente minima per l'installazione WiX senza una pagina di licenza?] (Https://stackoverflow.com/questions/597025/how-to-build-a-minimal-wix-installer-ui- senza-una-licenza-pagina) –

risposta

7

La chiave è di fare un'interfaccia utente personalizzata e collegare pagine differenti. Vedere la pagina su WixWiki

Si desidera prendere il codice WixUI per il set di finestre che si sta utilizzando (ad esempio Minimo, ecc.), Chiamarlo <UI Id='MyAppWix_UIMinimal'> e modificarlo un po 'e fare riferimento alle principali wx. Invece della finestra di benvenuto WelcomeEulaDlg, si desidera utilizzare WelcomeDlg. Regola i riferimenti e collega il pulsante Avanti di WelcomeDlg alla successiva finestra di dialogo nello stack.

Ecco un buon collegamento con il codice: http://www.howdoicode.net/2011/09/wix-how-to-hide-license-agreement.html

7

Questa semplificazione del XML di cui sopra (http://www.howdoicode.net/2011/09/wix-how-to-hide-license-agreement.html) ha lavorato per me; questo salta in modo efficace la licenza piuttosto che agganciando in una pagina personalizzata

<UI Id='Mondo'> 
    <UIRef Id="WixUI_Mondo" /> 
    <UIRef Id="WixUI_ErrorProgressText" /> 
    <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="SetupTypeDlg" Order="3">1</Publish> 
    <!-- skip the page on the way back too --> 
    <Publish Dialog="SetupTypeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">1</Publish> 
</UI> 

quello che devo dire l'approccio generale di copiare il codice Wix e sfruttarla circa un po '("Modifica della sequenza di interfaccia utente di un built-in finestra set" (http://wixtoolset.org/documentation/manual/v3/wixui/wixui_customizations.html)) è un pò condannato davvero .... ma hey

+0

Questo funziona perché "SetupTypeDlg" è magico; sembra essere il dialogo che normalmente viene dopo la licenza. bello eh? – jolyon

+0

Cosa succede nel tuo approccio quando fai clic su 'Indietro' nella finestra di dialogo SetupType? – harper

+0

inserisco rapidamente questa riga :-) 1 jolyon

22

ho saltato utilizzando:

<UI> 
    <UIRef Id="WixUI_InstallDir" /> 
    <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> 
+0

ha funzionato per me grazie. –

+0

Grazie, Sean, per il tuo suggerimento. Nel mio caso ho usato SetupTypeDlg come dialogo successivo invece –

+0

Ottima risposta. Tuttavia, per coloro che hanno installazioni 'semplici' con un percorso di installazione fisso e una sola funzione, consiglio di sostituire 'InstallDirDlg' con' VerifyReadyDlg'. Questo è più simile alla semplice interfaccia utente senza EULA. –

4

ho recentemente incontrato un progetto Wix # che imita i file XML Wix, ma vi permette codifica l'installazione in C#. È possibile trovare questo progetto su https://wixsharp.codeplex.com. Inizialmente ho avuto lo stesso problema con un file di licenza con i "Termini e condizioni" che devono essere accettati prima che l'utente possa installare il software. Essendo la soluzione non di natura tale da richiedere l'accettazione di "Termini e condizioni", ho dovuto trovare un modo per rimuovere questa finestra di dialogo.

Dopo un po 'di ricerca (in Wix #), mi si avvicinò con il seguente:

WixSharp.CommonTasks.Tasks.RemoveDialogsBetween(project, 
           WixSharp.Controls.NativeDialogs.WelcomeDlg, 
           NativeDialogs.InstallDirDlg); 

Va bene, ottengo che questo non risolve il problema a titolo definitivo, perché questo significa che si' Devo ricodificare la tua soluzione, quindi la prossima porta di scalo era quella di guardare il file sorgente WiX che era stato emesso durante questo processo.

Quindi da questo, ho visto che c'era un elemento <UI> con il seguente:

<UI> 
    <Publish Dialog="WelcomeDlg" 
      Control="Next" 
      Event="NewDialog" 
      Value="InstallDirDlg" 
      Order="5">1</Publish> 

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

che lega il tasto Avanti sulla benvenuto finestra al installare dialogo directory (o la finestra di dialogo dopo la finestra di dialogo della licenza) e il pulsante Indietro della finestra di dialogo di installazione alla finestra di dialogo di benvenuto - efficacemente oving la finestra di dialogo della licenza.

Problemi correlati