<Commands> (Elemento, Arranque)

El elemento Commands implementa las pruebas descritas por los elementos subyacentes al elemento InstallChecks, y declara el paquete en el que el arranque de ClickOnce deberá realizar la instalación en caso de que la prueba no se ejecute correctamente.

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

Elementos y atributos

Se requiere el elemento Commands.Este elemento tiene el siguiente atributo.

Atributo

Descripción

Reboot

Opcional.Determina si el sistema debería reiniciar si cualquiera de los paquetes devuelve un código de salida del reinicio.En la siguiente lista se muestran los valores válidos:

Defer.El reinicio es diferido hasta un momento posterior.

Immediate.Produce un reinicio inmediato si uno de los paquetes devuelve un código de salida del reinicio.

None.Se pasará por alto cualquier solicitud de reinicio.

El valor predeterminado es Immediate.

Command

El elemento Command es un elemento secundario del elemento Commands.Un elemento Commands puede tener uno o más elementos Command.El elemento tiene los atributos siguientes.

Atributo

Descripción

PackageFile

Obligatorio.El nombre del paquete que se instalará si una o más de las condiciones especificadas por InstallConditions devuelve falso.El paquete debe definirse en el mismo archivo utilizando un elemento PackageFile.

Arguments

Opcional.Un conjunto de argumentos de la línea de comandos que se pasará al archivo de paquetes.

EstimatedInstallSeconds

Opcional.Tiempo estimado (en segundos) que se tardará en instalar el paquete.Este valor determina el tamaño de la barra de progreso que el arranque muestra al usuario.El valor predeterminado es 0, en cuyo caso no se especifica ninguna estimación de tiempo.

EstimatedDiskBytes

Opcional.Cantidad estimada de espacio en disco (en bytes) que ocupará el paquete una vez finalizada la instalación.Este valor se utiliza en los requisitos de espacio en disco duro que el arranque muestra al usuario.El valor predeterminado es 0, en cuyo caso el arranque no muestra ningún requisito de espacio en el disco duro.

EstimatedTempBytes

Opcional.La cantidad estimada de espacio en disco temporal, en bytes, que el paquete requerirá.

Log

Opcional.Ruta de acceso al archivo de registro generado por el paquete, relativa al directorio raíz del paquete.

InstallConditions

El elemento InstallConditions es un elemento secundario del elemento Command.Cada elemento Command puede tener al menos un elemento InstallConditions.Si no existe ningún elemento InstallConditions, el paquete especificado por Condition se ejecutará siempre.

BypassIf

El elemento BypassIf es un elemento secundario del elemento InstallConditions y describe una condición positiva bajo la cual no se debería ejecutar el comando.Cada elemento InstallConditions puede tener cero o más elementos BypassIf.

BypassIf tiene los atributos siguientes.

Atributo

Descripción

Property

Obligatorio.El nombre de la propiedad que se va a comprobar.La propiedad debe previamente estar definida por un elemento secundario del elemento InstallChecks.Para obtener más información, vea <InstallChecks> (Elemento, Arranque).

Compare

Obligatorio.El tipo de comparación que se va a realizar.En la siguiente lista se muestran los valores válidos:

ValueEqualTo, ValueNotEqualTo, ValueGreaterThan, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionNotEqualTo, VersionGreaterThan, VersionGreaterThanOrEqualTo, VersionLessThan, VersionLessThanOrEqualTo, ValueExists, ValueNotExists

Value

Obligatorio.Valor que se va a comparar con la propiedad.

Schedule

Opcional.El nombre de una etiqueta Schedule que define cuándo se debería evaluar esta regla.

FailIf

El elemento FailIf es un elemento secundario del elemento InstallConditions y describe una condición positiva bajo la cual la instalación debería detenerse.Cada elemento InstallConditions puede tener cero o más elementos FailIf.

FailIf tiene los atributos siguientes.

Atributo

Descripción

Property

Obligatorio.El nombre de la propiedad que se va a comprobar.La propiedad debe previamente estar definida por un elemento secundario del elemento InstallChecks.Para obtener más información, vea <InstallChecks> (Elemento, Arranque).

Compare

Obligatorio.El tipo de comparación que se va a realizar.En la siguiente lista se muestran los valores válidos:

ValueEqualTo, ValueNotEqualTo, ValueGreaterThan, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionNotEqualTo, VersionGreaterThan, VersionGreaterThanOrEqualTo, VersionLessThan, VersionLessThanOrEqualTo, ValueExists, ValueNotExists

Value

Obligatorio.Valor que se va a comparar con la propiedad.

String

Opcional.El texto que se mostrará al usuario cuando se produzca un error.

Schedule

Opcional.El nombre de una etiqueta Schedule que define cuándo se debería evaluar esta regla.

ExitCodes

El elemento ExitCodes es un elemento secundario del elemento Command.El elemento ExitCodes contiene uno o varios elementos ExitCode, que determinan lo que debe hacer la instalación en respuesta a un código de salida de un paquete.Puede haber un elemento ExitCode opcional debajo de un elemento Command.ExitCodes no tiene atributos.

ExitCode

El elemento ExitCode es un elemento secundario del elemento ExitCodes.El elemento ExitCode determina lo que la instalación debe realizar en respuesta a un código de salida de un paquete.ExitCode no contiene elementos secundarios y tiene los atributos siguientes.

Atributo

Descripción

Value

Obligatorio.El valor del código de salida al que se aplica este elemento ExitCode.

Result

Obligatorio.Cómo la instalación debe reaccionar a este código de salida.En la siguiente lista se muestran los valores válidos:

Success.Marca el paquete como correctamente instalado.

SuccessReboot.Marca el paquete como correctamente instalado e indica al sistema que reinicie.

Fail.Marca el paquete como erróneo.

FailReboot.Marca el paquete como erróneo e indica al sistema que reinicie.

String

Opcional.El valor que se mostrará al usuario en respuesta a este código de salida.

FormatMessageFromSystem

Opcional.Determina si se utilizará el mensaje de error proporcionado por el sistema que corresponde al código de salida o si se utilizará el valor proporcionado en String.Los valores válidos son true, que significa utilizar el error proporcionado por el sistema y false, que significa utilizar la cadena proporcionada por String.El valor predeterminado es false.Si esta propiedad es false, pero no se ha establecido String, se utilizará el error proporcionado por sistema.

Ejemplo

El siguiente ejemplo de código define los comandos para instalar .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 2000 SP 2 or less -->
            <FailIf Property="VersionNT" Compare="VersionLessThan" Value="5.0.3" 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>

Vea también

Referencia

Referencia de esquemas de productos y paquetes

<InstallChecks> (Elemento, Arranque)