Esta documentación está archivada y no tiene mantenimiento.

Elemento <Commands> (programa ClickOnce previo)

Actualización: noviembre 2007

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


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

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.

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 programa previo 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 programa previo muestra al usuario. El valor predeterminado es 0, en cuyo caso el programa previo 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.

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.

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 estar definida previamente por un elemento secundario del elemento InstallChecks. Para obtener más información, vea Elemento <InstallChecks> (Programa ClickOnce previo).

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.

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 Elemento <InstallChecks> (Programa ClickOnce previo).

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.

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. Pueden existir un elemento ExitCode opcional bajo un elemento Command. ExitCodes no tiene ningún atributo.

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

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. Indica que el paquete se ha instalado correctamente.

SuccessReboot. Indica que el paquete se ha instalado correctamente e indica al sistema que reinicie.

Fail. Indica que el paquete no se ha instalado correctamente.

FailReboot. Indica que el paquete no se ha instalado correctamente 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.

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