2017-04-07 1 views
0

J'essaie d'installer trois applications en créant une boîte de dialogue personnalisée. Dans la boîte de dialogue Personnalisée, il y a la case à cocher et la case à cocher suivante. application pour faire le transfert de fichiers, installez le prerequiste basé sur quelle case est cochée. Je veux que cela se produise pour toutes les trois application.S'il vous plaît suggérer comment le faire et comment pouvons-nous donner la condition de le faire.Utilisation de Instal Shield Comment installer une applcaition (transfert de fichier, prérequiste) à l'aide d'une boîte de dialogue personnalisée

Répondre

0

En supposant que vous parlez d'un dialogue personnalisé pour un Basic MSI, je suggère ce qui suit:

  1. assurer que chaque application en question fait partie d'une caractéristique distincte. Si vous utilisez l'ensemble de boîtes de dialogue d'origine, l'utilisateur pourrait éventuellement les sélectionner par nom de fonction ou les masquer. Ces caractéristiques devraient avoir des noms significatifs, sur le modèle de App1, App2, App3.
  2. Assurez-vous que vos trois cases à cocher sont associées à des propriétés différentes, telles que INSTALL_APP_1, INSTALL_APP_2, INSTALL_APP_3. Je montre ici les propriétés publiques par habitude, mais comme elles seront utilisées dans la même séquence (même dans la même boîte de dialogue), il est possible d'utiliser des propriétés privées. Et utiliser des suffixes plus significatifs que 1, 2, 3.
  3. Ajout de plusieurs control events au bouton Suivant ou Installer dans la boîte de dialogue que vous avez décrite. Pour chaque fonctionnalité que vous souhaitez contrôler la façon suivante:
    • Ajouter un événement de contrôle AddLocal, avec un argument du nom de la fonction (par exemple App1), conditionnés à exécuter lorsque la case à cocher est cochée (c.-à une condition comme INSTALL_APP_1
    • Ajouter un événement de contrôle Remove, avec un argument du nom de la fonction (par exemple App1), conditionnés à exécuter lorsque la case à cocher n'est pas vérifié (avec une condition comme NOT INSTALL_APP_1.
  1. Si vous souhaitez afficher cette boîte de dialogue lors de la maintenance, vous devez également initialiser les valeurs des propriétés de la case à cocher (INSTALL_APP_1, etc.) de sorte que le dépassement de cette boîte de dialogue ne ne changez pas leur état d'installation. Vous pouvez utiliser feature-state condition syntax (!App1, etc.) pour le faire dans les actions personnalisées SetProperty planifiées juste avant d'afficher la boîte de dialogue de maintenance (par exemple, définissez la propriété INSTALL_APP_1 sur la valeur 1 avec la condition !App1=3).

  2. Si ces fonctions sont affichées dans un contrôle de sélection de fonction, veillez à mettre à jour les propriétés en conséquence. Faites-le sur le bouton Suivant de cette boîte de dialogue en utilisant une combinaison de l'état des entités et des syntaxes d'action des entités. La propriété doit être 1 si la fonctionnalité est actuellement installée et n'est pas supprimée ou est en cours d'installation; il doit être réglé sur vide ({}) sinon.

Ceci est un grand nombre d'étapes, mais ensemble, elles aident à garantir que les fonctionnalités agissent comme l'utilisateur le souhaite. S'il ne fait rien pour changer leur état, ils devraient persister comme précédemment. Si elles sont visibles à la fois dans le contrôle de sélection des fonctionnalités et via les cases à cocher, elles doivent agir en synchronisation.

En ce qui concerne les conditions préalables, si vous voulez dire le concept de conditions préalables InstallShield, vous pouvez associate prerequisites with the features pour ces applications.Si vous voulez simplement parler d'autres composants dans votre MSI, ceux-ci fonctionnent parfaitement avec les fonctionnalités définies à l'étape 1.