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

L’élément Commands implémente les tests décrits par les éléments sous l’élément InstallChecks et déclare le package que le programme d’amorçage ClickOnce doit installer en cas d’échec du test.

Syntax

<Commands
    Reboot
>
    <Command
        PackageFile
        Arguments
        EstimatedInstallSeconds
        EstimatedDiskBytes
        EstimatedTempBytes
        Log
    >
        <InstallConditions>
            <BypassIf
                Property
                Compare
                Value
                Schedule
            />
            <FailIf
                Property
                Compare
                Value
                String
                Schedule
            />
        </InstallConditions>
        <ExitCodes>
            <ExitCode
                Value
                Result
                String
            />
        </ExitCodes>
    </Command>
</Commands>

Éléments et attributs

L’élément Commands est obligatoire. L’élément a l’attribut suivant.

Attribut Description
Reboot facultatif. Détermine si le système doit redémarrer si l’un des packages retourne un code de sortie de redémarrage. La liste suivante affiche les valeurs valides :

Defer. Le redémarrage est différé.

Immediate. Provoque un redémarrage immédiat si l’un des packages a retourné un code de sortie de redémarrage.

None. Toutes les requêtes de redémarrage seront ignorées.

Par défaut, il s’agit de Immediate.

Commande

L'élément Command est un élément enfant de l'élément Commands. Un élément Commands peut avoir un ou plusieurs éléments Command. L’élément a les attributs suivants.

Attribut Description
PackageFile Obligatoire. Le nom du package à installer si une ou plusieurs conditions spécifiées par InstallConditions retournent false. Le package doit être défini dans le même fichier avec un élément PackageFile.
Arguments facultatif. Ensemble d’arguments de ligne de commande à transférer dans le fichier de package.
EstimatedInstallSeconds facultatif. Durée estimée de l’installation du package, en secondes. Cette valeur détermine la taille de la barre de progression présentée à l’utilisateur par le programme d’amorçage. La valeur par défaut est 0 : aucune estimation de durée n’est spécifiée.
EstimatedDiskBytes facultatif. Quantité estimée d’espace disque, en octets, que le package occupera après l’installation. Cette valeur est indiquée à l’utilisateur comme espace de disque dur requis par le programme d’amorçage. La valeur par défaut est 0 : le programme d’amorçage n’indique pas d’espace de disque dur requis.
EstimatedTempBytes facultatif. Quantité estimée d’espace disque temporaire, en octets, dont le package aura besoin.
Log facultatif. Chemin du fichier journal généré par le package (relatif par rapport au répertoire racine du package).

InstallConditions

L’élément InstallConditions est un enfant de l’élément Command. Chaque élément Command peut avoir au plus un élément InstallConditions. Si aucun élément InstallConditions n’existe, le package spécifié par Condition s’exécute toujours.

BypassIf

L’élément BypassIf est un enfant de l’élément InstallConditions et décrit une condition positive dans laquelle la commande ne doit pas être exécutée. Chaque élément InstallConditions peut avoir zéro, un ou plusieurs éléments BypassIf.

BypassIf possède les attributs suivants.

Attribut Description
Property Obligatoire. Nom de la propriété à tester. La propriété doit avoir été définie précédemment par un enfant de l’élément InstallChecks. Pour plus d’informations, consultez <InstallChecks>, élément.
Compare Obligatoire. Type de comparaison à effectuer. La liste suivante affiche les valeurs valides :

ValueEqualTo, ValueNotEqualTo, ValueGreaterThan, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionNotEqualTo, VersionGreaterThan, VersionGreaterThanOrEqualTo, VersionLessThan, VersionLessThanOrEqualTo, ValueExists, ValueNotExists
Value Obligatoire. Valeur à comparer avec la propriété.
Schedule facultatif. Nom d’une étiquette Schedule, qui définit quand cette règle doit être évaluée.

FailIf

L’élément FailIf est un enfant de l’élément InstallConditions et décrit une condition positive dans laquelle l’installation doit être arrêtée. Chaque élément InstallConditions peut avoir zéro, un ou plusieurs éléments FailIf.

FailIf possède les attributs suivants.

Attribut Description
Property Obligatoire. Nom de la propriété à tester. La propriété doit avoir été définie précédemment par un enfant de l’élément InstallChecks. Pour plus d’informations, consultez <InstallChecks>, élément.
Compare Obligatoire. Type de comparaison à effectuer. La liste suivante affiche les valeurs valides :

ValueEqualTo, ValueNotEqualTo, ValueGreaterThan, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionNotEqualTo, VersionGreaterThan, VersionGreaterThanOrEqualTo, VersionLessThan, VersionLessThanOrEqualTo, ValueExists, ValueNotExists
Value Obligatoire. Valeur à comparer avec la propriété.
String facultatif. Texte à présenter à l’utilisateur en cas d’échec.
Schedule facultatif. Nom d’une étiquette Schedule, qui définit quand cette règle doit être évaluée.

ExitCodes

L’élément ExitCodes est un enfant de l’élément Command. L’élément ExitCodes contient un ou plusieurs éléments ExitCode, qui déterminent le comportement de l’installation en réponse à un code de sortie d’un package. Il peut y avoir un élément ExitCode facultatif sous un élément Command. ExitCodes n’a pas d’attributs.

ExitCode

L’élément ExitCode est un enfant de l’élément ExitCodes. L’élément ExitCode détermine le comportement de l’installation en réponse à un code de sortie d’un package. ExitCode ne contient aucun élément enfant et possède les attributs suivants.

Attribut Description
Value Obligatoire. Valeur de code de sortie à laquelle s’applique cet élément ExitCode.
Result Obligatoire. Comportement de l’installation en présence de ce code de sortie. La liste suivante affiche les valeurs valides :

Success. Indique que le package a été correctement installé.

SuccessReboot. Indique que le package a été correctement installé et indique au système de redémarrer.

Fail. Indique que le package a échoué.

FailReboot. Indique que le package a échoué et indique au système de redémarrer.
String facultatif. Valeur à présenter à l’utilisateur en réponse à ce code de sortie.
FormatMessageFromSystem facultatif. Détermine s’il faut utiliser le message d’erreur fourni par le système correspondant au code de sortie ou utiliser la valeur fournie dans String. Les valeurs valides sont true (utiliser l’erreur fournie par le système) et false (utiliser la chaîne fournie par String). Par défaut, il s’agit de false. Si cette propriété est false, mais que String n’est pas défini, l’erreur fournie par le système est utilisée.

Exemple

L’exemple de code suivant définit des commandes pour l’installation du .NET Framework 2.0.

<Commands Reboot="Immediate">
    <Command PackageFile="instmsia.exe"
             Arguments= ' /q /c:"msiinst /delayrebootq"'
             EstimatedInstallSeconds="20" >
        <InstallConditions>
           <BypassIf Property="VersionNT" Compare="ValueExists"/>
             BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="2.0"/>
        </InstallConditions>
        <ExitCodes>
            <ExitCode Value="0" Result="SuccessReboot"/>
            <ExitCode Value="1641" Result="SuccessReboot"/>
            <ExitCode Value="3010" Result="SuccessReboot"/>
            <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
        </ExitCodes>
    </Command>
    <Command PackageFile="WindowsInstaller-KB884016-v2-x86.exe"
             Arguments= '/quiet /norestart'
             EstimatedInstallSeconds="20" >
      <InstallConditions>
          <BypassIf Property="Version9x" Compare="ValueExists"/>
          <BypassIf Property="VersionNT" Compare="VersionLessThan" Value="5.0.3"/>
          <BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="3.0"/>
          <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
      </InstallConditions>
      <ExitCodes>
          <ExitCode Value="0" Result="Success"/>
          <ExitCode Value="1641" Result="SuccessReboot"/>
          <ExitCode Value="3010" Result="SuccessReboot"/>
          <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
      </ExitCodes>
    </Command>
    <Command PackageFile="dotnetfx.exe"
         Arguments=' /q:a /c:"install /q /l"'
         EstimatedInstalledBytes="21000000"
         EstimatedInstallSeconds="300">

        <!-- These checks determine whether the package is to be installed -->
        <InstallConditions>
            <!-- Either of these properties indicates the .NET Framework is already installed -->
            <BypassIf Property="DotNetInstalled" Compare="ValueNotEqualTo" Value="0"/>

            <!-- Block install if user does not have adminpermissions -->
            <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>

            <!-- Block install on Windows 95 -->
            <FailIf Property="Version9X" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>

            <!-- Block install on Windows 8 or less -->
            <FailIf Property="VersionNT" Compare="VersionLessThan" Value="6.2" String="InvalidPlatformWinNT"/>

            <!-- Block install if Internet Explorer 5.01 or later is not present -->
            <FailIf Property="IEVersion" Compare="ValueNotExists" String="InvalidPlatformIE" />
            <FailIf Property="IEVersion" Compare="VersionLessThan" Value="5.01" String="InvalidPlatformIE" />

            <!-- Block install if the operating system does not support x86 -->
            <FailIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" String="InvalidPlatformArchitecture" />
       </InstallConditions>

        <ExitCodes>
            <ExitCode Value="0" Result="Success"/>
            <ExitCode Value="3010" Result="SuccessReboot"/>
            <ExitCode Value="4097" Result="Fail" String="AdminRequired"/>
            <ExitCode Value="4098" Result="Fail" String="WindowsInstallerComponentFailure"/>
            <ExitCode Value="4099" Result="Fail" String="WindowsInstallerImproperInstall"/>
            <ExitCode Value="4101" Result="Fail" String="AnotherInstanceRunning"/>
            <ExitCode Value="4102" Result="Fail" String="OpenDatabaseFailure"/>
            <ExitCode Value="4113" Result="Fail" String="BetaNDPFailure"/>
            <DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
        </ExitCodes>

    </Command>
</Commands>

Voir aussi