2011-04-01 5 views
0

J'ai modifié le jeu de dialogue InstallDir de Wix. J'ai supprimé le contrat de licence et ajouté ma propre boîte de dialogue. Je montre la première boîte de dialogue en utilisant:ne peut pas voir la boîte de dialogue de progression

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

La séquence de dialogue fonctionne très bien, sauf que lorsque l'utilisateur clique sur « installer » sur la dernière boîte de dialogue, la boîte de dialogue disparaît et l'application installe silencieusement, sans aucune barre de progression. Ce n'est pas un comportement par défaut du jeu de dialogue InstallDir de WiX. La barre de progression doit être présente. Je me demande pourquoi ce n'est pas affiché. Des idées?

Répondre

0

J'ai dû enlever complètement cette ligne:

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

Après que tout a bien fonctionné!

3

Vous programmez WelcomeDlg pour être affiché, puis ExecuteAction, qui exécute l'installation. Donc, la boîte de dialogue de progression n'est jamais affichée.

1

Si vous modifiez les boîtes de dialogue MSI standard, je crois que vous devez vous assurer de les planifier toutes pour vous assurer que votre interface utilisateur personnalisée s'affiche correctement.

2

Voici ce que j'ai dans l'élément <InstallUISequence> dans mon modèle de configuration:

<Show Dialog="PrepareDlg" After="LaunchConditions" /> 
    <Show Dialog="WelcomeDlg" After="MigrateFeatureStates">NOT Installed</Show> 
    <Show Dialog="ResumeDlg" After="WelcomeDlg">Installed AND (RESUME OR Preselected)</Show> 
    <Show Dialog="MaintenanceWelcomeDlg" After="ResumeDlg">Installed AND NOT RESUME AND NOT Preselected</Show> 
    <Show Dialog="ProgressDlg" After="MaintenanceWelcomeDlg" /> 

Vous devez avoir retiré ProgressDlg de InstallUISequence, et donc il ne se présente pas. Remarque: ProgressDlg est non modale, ce qui signifie que le programme d'installation récupère le contrôle après avoir créé le dialogue. InstallSequence envoie des messages de progression à ProgressDlg pour mettre à jour son état.

Questions connexes