Elemento <Commands> (programa previo)
El elemento Commands
implementa pruebas descritas por los elementos bajo el elemento InstallChecks
y declara qué paquete debe instalar el programa previo de ClickOnce si se produce un error en la prueba.
Sintaxis
<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
El elemento Commands
es obligatorio. El elemento tiene los atributos siguientes.
Atributo | Descripción |
---|---|
Reboot |
Opcional. Determina si el sistema debe reiniciarse en caso de que alguno de los paquetes devuelva un código de salida de reinicio. En la lista siguiente se muestran los valores válidos:Defer . El reinicio se aplaza hasta un momento futuro.Immediate . Provoca un reinicio inmediato si uno de los paquetes devuelve un código de salida de reinicio.None . Hace que se omitan las solicitudes de reinicio.El valor predeterminado es Immediate . |
Get-Help
El elemento Command
es un elemento secundario del elemento Commands
. Cada elemento Commands
puede tener uno o varios elementos Command
. El elemento tiene los atributos siguientes.
Atributo | Descripción |
---|---|
PackageFile |
Necesario. El nombre del paquete que se instalará si una o varias de las condiciones especificadas por InstallConditions devuelve false. El paquete debe definirse en el mismo archivo mediante un elemento PackageFile . |
Arguments |
Opcional. Un conjunto de argumentos de línea de comando para pasar al archivo del paquete. |
EstimatedInstallSeconds |
Opcional. El tiempo estimado (en segundos) que 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. La cantidad estimada de espacio en disco (en bytes) que ocupará el paquete una vez finalizada su instalación. Este valor se usa en los requisitos de espacio en disco duro que el programa de programa previo muestra al usuario. El valor predeterminado es 0, en cuyo caso el programa previo no muestra ningún requisito de espacio en disco duro. |
EstimatedTempBytes |
Opcional. La cantidad estimada de espacio en disco temporal (en bytes) que requerirá el paquete. |
Log |
Opcional. La ruta de acceso al archivo de registro que genera 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 como máximo 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 que no se debe ejecutar el comando. Cada elemento InstallConditions
puede tener cero, uno o más elementos BypassIf
.
BypassIf
tiene los atributos siguientes.
Atributo | Descripción |
---|---|
Property |
Necesario. El nombre de la propiedad que se va a probar. La propiedad debe haber sido definida previamente por un elemento secundario del elemento InstallChecks . Para obtener más información, vea Elemento <InstallChecks>. |
Compare |
Necesario. El tipo de comparación que se va a realizar. En la lista siguiente se muestran los valores válidos:ValueEqualTo , ValueNotEqualTo , ValueGreaterThan , ValueGreaterThanOrEqualTo , ValueLessThan , ValueLessThanOrEqualTo , VersionEqualTo , VersionNotEqualTo , VersionGreaterThan , VersionGreaterThanOrEqualTo , VersionLessThan , VersionLessThanOrEqualTo , ValueExists , ValueNotExists |
Value |
Necesario. El valor que se va a comparar con la propiedad. |
Schedule |
Opcional. El nombre de una etiqueta Schedule que define cuándo se debe evaluar esta regla. |
FailIf
El elemento FailIf
es un elemento secundario del elemento InstallConditions
y describe una condición positiva bajo la que se debe detener la instalación. Cada elemento InstallConditions
puede tener cero, uno o más elementos FailIf
.
FailIf
tiene los atributos siguientes.
Atributo | Descripción |
---|---|
Property |
Necesario. El nombre de la propiedad que se va a probar. La propiedad debe haber sido definida previamente por un elemento secundario del elemento InstallChecks . Para obtener más información, vea Elemento <InstallChecks>. |
Compare |
Necesario. El tipo de comparación que se va a realizar. En la lista siguiente se muestran los valores válidos:ValueEqualTo , ValueNotEqualTo , ValueGreaterThan , ValueGreaterThanOrEqualTo , ValueLessThan , ValueLessThanOrEqualTo , VersionEqualTo , VersionNotEqualTo , VersionGreaterThan , VersionGreaterThanOrEqualTo , VersionLessThan , VersionLessThanOrEqualTo , ValueExists , ValueNotExists |
Value |
Necesario. El valor que se va a comparar con la propiedad. |
String |
Opcional. El texto que mostrará al usuario en caso de error. |
Schedule |
Opcional. El nombre de una etiqueta Schedule que define cuándo se debe evaluar esta regla. |
ExitCodes
El elemento ExitCodes
es un elemento secundario del elemento Command
. El elemento ExitCodes
contiene uno o varios elementos ExitCode
, los cuales determinan qué debe hacer la instalación en respuesta a un código de salida de un paquete. Puede haber un elemento opcional ExitCode
bajo un elemento Command
. ExitCodes
no tiene atributos.
ExitCode
El elemento ExitCode
es un elemento secundario del elemento ExitCodes
. El elemento ExitCode
determina qué debe hacer la instalación 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 |
Necesario. El valor del código de salida al que se aplica este elemento ExitCode . |
Result |
Necesario. Cómo debe reaccionar la instalación ante este código de salida. En la lista siguiente se muestran los valores válidos:Success . Marca el paquete como instalado correctamente.SuccessReboot . Marca el paquete como instalado correctamente e indica al sistema que se reinicie.Fail . Marca el paquete como con errores.FailReboot . Marca el paquete como con errores e indica al sistema que se reinicie. |
String |
Opcional. El valor que se mostrará al usuario en respuesta a este código de salida. |
FormatMessageFromSystem |
Opcional. Determina si se debe usar el mensaje de error proporcionado por el sistema correspondiente al código de salida o el valor proporcionado en String . Los valores válidos son true , que indica que se debe usar el error proporcionado por el sistema, y false , que indica que se debe usar la cadena proporcionada por String . El valor predeterminado es false . Si esta propiedad es false , pero no se establece un valor String , se usará el error proporcionado por el sistema. |
Ejemplo
En el ejemplo de código siguiente se definen 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 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>