<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.