<InstallChecks>, élément (programme d’amorçage)

L’élément InstallChecks assure le démarrage d’une variété de tests sur l’ordinateur local pour vérifier que tous les composants prérequis appropriés d’une application ont été installés.

Syntax

<InstallChecks>
    <AssemblyCheck
        Property
        Name
        PublicKeyToken
        Version
        Language
        ProcessorArchitecture
    />
    <RegistryCheck
        Property
        Key
        Value
    />
    <ExternalCheck
        PackageFile
        Property
        Arguments
    />
    <FileCheck
        Property
        FileName
        SearchPath
        SpecialFolder
        SearchDepth
    />
    <MsiProductCheck
        Property
        Product
        Feature
    />
    <RegistryFileCheck
        Property
        Key
        Value
        FileName
        SearchDepth
    />
</InstallChecks>

AssemblyCheck

Il s’agit d’un élément enfant facultatif de InstallChecks. Pour chaque instance de AssemblyCheck, le programme d’amorçage vérifie que l’assembly identifié par l’élément existe dans le GAC (Global Assembly Cache). Il ne contient aucun élément et possède les attributs suivants.

Attribut Description
Property Obligatoire. Nom de la propriété qui doit stocker le résultat. Cette propriété peut être référencée à partir d’un test sous l’élément InstallConditions, qui est un enfant de l’élément Command. Pour plus d’informations, consultez l’article <Commands>, élément.
Name Obligatoire. Nom complet de l’assembly à vérifier.
PublicKeyToken Obligatoire. Il s’agit de la forme abrégée de la clé publique associée à cet assembly à nom fort. Tous les assemblys stockés dans le GAC doivent avoir un nom, une version et une clé publique.
Version Obligatoire. Version de l'assembly.

Le numéro de version a le format <version principale>.<version mineure>.<version de build>.<version de révision>.
Language facultatif. Langue d’un assembly localisé. La valeur par défaut est neutral.
ProcessorArchitecture facultatif. Processeur de l’ordinateur ciblé par cette installation. La valeur par défaut est msil.

ExternalCheck

Il s’agit d’un élément enfant facultatif de InstallChecks. Pour chaque instance de ExternalCheck, le programme d’amorçage exécute le programme externe nommé dans un processus distinct et stocke son code de sortie dans la propriété indiquée par Property. ExternalCheck est utile pour implémenter des vérifications de dépendance complexes ou quand la seule façon de vérifier l’existence d’un composant est de l’instancier.

ExternalCheck ne contient aucun élément et possède les attributs suivants.

Attribut Description
Property Obligatoire. Nom de la propriété qui doit stocker le résultat. Cette propriété peut être référencée à partir d’un test sous l’élément InstallConditions, qui est un enfant de l’élément Command. Pour plus d’informations, consultez l’article <Commands>, élément.
PackageFile Obligatoire. Programme externe à exécuter. Le programme doit faire partie du package de distribution d’installation.
Arguments facultatif. Fournit des arguments de ligne de commande à l’exécutable nommé par PackageFile.

FileCheck

Il s’agit d’un élément enfant facultatif de InstallChecks. Pour chaque instance de FileCheck, le programme d’amorçage détermine si le fichier nommé existe et retourne le numéro de version du fichier. Si le fichier n’a pas de numéro de version, le programme d’amorçage définit la propriété nommée par Property sur 0. Si le fichier n’existe pas, Property n’est défini sur aucune valeur.

FileCheck ne contient aucun élément et possède les attributs suivants.

Attribut Description
Property Obligatoire. Nom de la propriété qui doit stocker le résultat. Cette propriété peut être référencée à partir d’un test sous l’élément InstallConditions, qui est un enfant de l’élément Command. Pour plus d’informations, consultez l’article <Commands>, élément.
FileName Obligatoire. Nom du fichier à rechercher.
SearchPath Obligatoire. Disque ou dossier dans lequel rechercher le fichier. Il doit s’agir d’un chemin relatif si SpecialFolder est affecté. Sinon, il doit s’agir d’un chemin absolu.
SpecialFolder facultatif. Dossier spécifiquement associé à Windows ou ClickOnce. Par défaut, SearchPath est interprété comme chemin absolu. Les valeurs valides sont les suivantes :

AppDataFolder. Dossier de données d’application pour cette application ClickOnce, spécifique à l’utilisateur actuel.

CommonAppDataFolder. Dossier de données d’application utilisé par tous les utilisateurs.

CommonFilesFolder. Dossier Common Files de l’utilisateur actuel.

LocalDataAppFolder. Dossier de données pour les applications non itinérantes.

ProgramFilesFolder. Dossier Program Files standard pour les applications 32 bits.

StartUpFolder. Dossier contenant toutes les applications lancées au démarrage du système.

SystemFolder. Dossier contenant des DLL système 32 bits.

WindowsFolder. Dossier contenant l’installation du système Windows.

WindowsVolume. Lecteur ou partition contenant l’installation du système Windows.
SearchDepth facultatif. Niveau de sous-dossiers dans auquel rechercher le fichier nommé. La recherche est de type profondeur d’abord. La valeur par défaut est 0, ce qui limite la recherche au dossier de niveau supérieur spécifié par SpecialFolder et SearchPath.

MsiProductCheck

Il s’agit d’un élément enfant facultatif de InstallChecks. Pour chaque instance de MsiProductCheck, le programme d’amorçage vérifie si l’installation de Microsoft Windows Installer spécifiée a été entièrement exécutée. La valeur de la propriété est définie en fonction de l’état du produit installé. Une valeur positive indique que le produit est installé. La valeur 0 ou -1 indique qu’il n’est pas installé. (Pour plus d’informations, reportez-vous à la fonction de SDK Windows Installer MsiQueryFeatureState.) Si Windows Installer n’est pas installé sur l’ordinateur, Property n’est pas défini.

MsiProductCheck ne contient aucun élément et possède les attributs suivants.

Attribut Description
Property Obligatoire. Nom de la propriété qui doit stocker le résultat. Cette propriété peut être référencée à partir d’un test sous l’élément InstallConditions, qui est un enfant de l’élément Command. Pour plus d’informations, consultez l’article <Commands>, élément.
Product Obligatoire. GUID du produit installé.
Feature facultatif. GUID d’une fonctionnalité spécifique de l’application installée.

RegistryCheck

Il s’agit d’un élément enfant facultatif de InstallChecks. Pour chaque instance de RegistryCheck, le programme d’amorçage vérifie si la clé de Registre spécifiée existe ou si elle a la valeur indiquée.

RegistryCheck ne contient aucun élément et possède les attributs suivants.

Attribut Description
Property Obligatoire. Nom de la propriété qui doit stocker le résultat. Cette propriété peut être référencée à partir d’un test sous l’élément InstallConditions, qui est un enfant de l’élément Command. Pour plus d’informations, consultez l’article <Commands>, élément.
Key Obligatoire. Nom de la clé de Registre.
Value facultatif. Nom de la valeur de Registre à récupérer. Par défaut, le texte de la valeur par défaut est retourné. Value doit être une chaîne ou un DWORD.

RegistryFileCheck

Il s’agit d’un élément enfant facultatif de InstallChecks. Pour chaque instance de RegistryFileCheck, le programme d’amorçage récupère la version du fichier spécifié en essayant d’abord de récupérer le chemin du fichier à partir de la clé de Registre spécifiée. Cela est particulièrement utile si vous souhaitez rechercher un fichier dans un répertoire spécifié comme valeur dans le Registre.

RegistryFileCheck ne contient aucun élément et possède les attributs suivants.

Attribut Description
Property Obligatoire. Nom de la propriété qui doit stocker le résultat. Cette propriété peut être référencée à partir d’un test sous l’élément InstallConditions, qui est un enfant de l’élément Command. Pour plus d’informations, consultez l’article <Commands>, élément.
Key Obligatoire. Nom de la clé de Registre. Sa valeur est interprétée comme chemin d’un fichier, sauf si l’attribut File est défini. Si cette clé n’existe pas, Property n’est pas défini.
Value facultatif. Nom de la valeur de Registre à récupérer. Par défaut, le texte de la valeur par défaut est retourné. Value doit être une chaîne.
FileName facultatif. Nom d’un fichier. S’il est spécifié, la valeur obtenue à partir de la clé de Registre est considérée comme chemin de répertoire et ce nom lui est ajouté. S’il n’est pas spécifié, la valeur retournée par le Registre est considérée comme chemin de fichier complet.
SearchDepth facultatif. Niveau de sous-dossiers dans auquel rechercher le fichier nommé. La recherche est de type profondeur d’abord. La valeur par défaut est 0, ce qui limite la recherche au dossier de niveau supérieur spécifié par la valeur de la clé de Registre.

Remarques

Les éléments sous InstallChecks définissent les tests à exécuter, mais ils ne les exécutent pas. Pour exécuter les tests, vous devez créer des éléments Command sous l’élément Commands.

Exemple

L’exemple de code suivant illustre l’élément InstallChecks utilisé dans le fichier produit pour le .NET Framework.

<InstallChecks>
    <ExternalCheck Property="DotNetInstalled" PackageFile="dotnetchk.exe" />
    <RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
</InstallChecks>

InstallConditions

Quand des InstallChecks sont évalués, ils produisent des propriétés. Les propriétés sont ensuite utilisées par InstallConditions pour déterminer si un package doit procéder à l’installation, s’il doit être contourné ou s’il doit échouer. Le tableau suivant liste les InstallConditions :

Condition Description
FailIf Si une condition FailIf prend la valeur true, le package échoue. Les conditions restantes ne seront pas évaluées.
BypassIf Si une condition BypassIf prend la valeur true, le package est contourné. Les conditions restantes ne seront pas évaluées.

Propriétés prédéfinies

Le tableau suivant liste les éléments BypassIf et FailIf :

Propriété Notes Valeurs possibles
Version9X Numéro de version d’un système d’exploitation Windows 9X. 4.10 = Windows 98
VersionNT Numéro de version d’un système d’exploitation Windows. Major.Minor.ServicePack
VersionNT64 Numéro de version d’un système d’exploitation Windows 64 bits. Major.Minor.ServicePack.
VersionMsi Numéro de version du service Windows Installer. 2.0 = Windows Installer 2.0
AdminUser Spécifie si un utilisateur dispose de privilèges d’administrateur sur un système d’exploitation Windows NT. 0 = pas de privilèges d’administrateur

1 = privilèges d’administrateur

Par exemple, pour bloquer l’installation sur un ordinateur exécutant Windows 8, utilisez un code de ce type :

    <!-- Block install on Windows 8 -->
    <FailIf Property="VersionNT64" Compare="VersionLessThan" Value="6.2" String="InvalidPlatform"/>

Pour ignorer l’exécution des vérifications d’installation si une condition FailIf ou BypassIf est remplie, utilisez l’attribut BeforeInstallChecks. Par exemple :

    <!-- Block install and do not evaluate install checks if user does not have admin privileges -->
    <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired" BeforeInstallChecks="true"/>

Notes

L’attribut BeforeInstallChecks est pris en charge à partir de Visual Studio 2019 Update 9.

Voir aussi