Action InstallValidate
L’action InstallValidate vérifie que tous les volumes auxquels le coût a été attribué disposent d’un espace suffisant pour l’installation. L’action InstallValidate met fin à l’installation avec une erreur irrécupérable si un volume manque d’espace disque.
L’action InstallValidate avertit également l’utilisateur si un ou plusieurs fichiers à remplacer ou à supprimer sont actuellement utilisés par un processus actif. Pour plus d’informations, consultez Redémarrages du système.
Restrictions de séquence
L’action CostFinalize et toutes les séquences de boîte de dialogue de l’interface utilisateur qui permettent à l’utilisateur de modifier les états de sélection et/ou les répertoires doivent être séquencées avant l’action InstallValidate.
Les actions personnalisées qui modifient l’état d’installation des fonctionnalités ou des composants doivent être séquencées avant l’action InstallValidate.
Messages ActionData
Il n’y a pas de messages ActionData.
Notes
En règle générale, une séquence de boîte de dialogue d’interface utilisateur antérieure doit effectuer la même vérification que l’action InstallValidate lorsque l’utilisateur tente d’initier la copie de fichiers. Cette séquence de boîte de dialogue de l’interface utilisateur doit présenter une boîte de dialogue Espace disque insuffisant si les volumes sélectionnés ne disposent pas de suffisamment d’espace pour l’installation. Les boîtes de dialogue de l’interface utilisateur doivent être créées de manière à empêcher l’utilisateur de poursuivre l’installation si l’espace disque est insuffisant. Dans le cas d’une installation silencieuse, il n’existe aucune interface utilisateur et l’action InstallValidate met fin à l’installation si l’espace disque est insuffisant. La cause de l’arrêt prématuré est enregistrée dans le fichier journal si la journalisation est activée.
Une entrée est ajoutée à une table FilesInUse interne si un fichier est remplacé ou supprimé alors qu’il est ouvert pour exécution ou modification par n’importe quel processus lors du calcul du coût des fichiers. La table FilesInUse contient des colonnes pour le nom et le chemin d’accès complet du fichier. Lorsque l’action InstallValidate s’exécute, le programme d’installation recherche des entrées dans la table FilesInUse et détermine le nom du processus qui utilise le fichier. L’action InstallValidate ajoute un enregistrement à la table d’interface utilisateur ListBox pour chaque processus unique identifié par cette requête. L’enregistrement contient les valeurs suivantes dans chaque colonne :
Property : FileInUseProcess
Value : nom du processus
Text : texte contenu dans la légende de la fenêtre principale du processus
L’action InstallValidate affiche ensuite la boîte de dialogue Fichiers en cours d’utilisation. Cette boîte de dialogue affiche les processus qui doivent être arrêtés pour éviter la nécessité de redémarrer le système pour remplacer les fichiers en cours d’utilisation.
L’action InstallValidate interroge la table Dialog à la recherche d’une boîte de dialogue créée avec le nom réservé FilesInUse et l’affiche. Cette boîte de dialogue doit contenir un contrôle ListBox lié à une propriété nommée FileInUseProcess. Par convention, cette boîte de dialogue comporte un bouton Exit, Retry ou Ignore, mais c’est à l’auteur de l’interface utilisateur d’en décider. Chaque bouton doit être lié à un ControlEvent EndDialog dans la table ControlEvent. L’action InstallValidate répond comme suit à la valeur renvoyée par le ControlEvent DoAction, comme dicté par l’un des arguments EndDialog associés au bouton sur lequel l’utilisateur a appuyé :
Retry : toutes les valeurs ajoutées à la table ListBox sont effacées et la procédure complète de calcul des coûts des fichiers est répétée, ce qui permet de vérifier à nouveau les fichiers qui sont toujours en cours d’utilisation. Si un ou plusieurs processus sont toujours identifiés comme utilisant des fichiers à remplacer ou à supprimer, le processus se répète ; sinon, InstallValidate renvoie le contrôle au programme d’installation avec l’état msiDoActionStatusSuccess.
Exit : l’action InstallValidate renvoie immédiatement le contrôle au programme d’installation avec un statut msiDoActionStatusUserExit. Cela met fin à l’installation.
Toute autre valeur de retour : l’action InstallValidate renvoie immédiatement le contrôle au programme d’installation avec un statut de msiDoActionStatusSuccess. Dans ce cas, étant donné qu’un ou plusieurs fichiers sont toujours en cours d’utilisation, les actions InstallFiles et/ou InstallAdminPackage suivantes doivent planifier le remplacement ou la suppression du ou des fichiers en cours d’utilisation lors du redémarrage du système.
S’il n’existe aucune table ListBox dans la base de données, InstallValidate se ferme en mode silencieux sans erreur.
Le point-virgule est le délimiteur de liste pour les transformations, les sources et les correctifs et ne doit pas être utilisé dans ces noms de fichiers ou chemins d’accès.
Les fichiers marqués en lecture seule dans un emplacement en lecture seule ne sont jamais considérés comme utilisés par le programme d’installation.
Une boîte de dialogue Espace disque insuffisant par défaut contenant les boutons Abort et Retry est présentée à l’utilisateur si le niveau d’interface utilisateur est basique.