Elemento <Comandos> (bootstrapper)
O elemento Commands
implementa testes descritos pelos elementos abaixo do elemento InstallChecks
e declara qual pacote o bootstrapper ClickOnce deve instalar se o teste falhar.
Sintaxe
<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 e atributos
O elemento Commands
é obrigatório. O elemento possui o atributo a seguir.
Atributo | Descrição |
---|---|
Reboot |
Opcional. Determina se o sistema deve ser reiniciado se algum dos pacotes retornar um código de saída de reinicialização. A lista a seguir mostra os valores válidos:Defer . A reinicialização é adiada para um momento futuro.Immediate . Causa uma reinicialização imediata se um dos pacotes retornar um código de saída de reinicialização.None . Faz com que todas as solicitações de reinicialização sejam ignoradas.O padrão é Immediate . |
Comando
O Command
é um elemento filho do elemento Commands
. Um elemento Commands
pode possuir um ou mais elementos Command
. O elemento possui os atributos a seguir.
Atributo | Descrição |
---|---|
PackageFile |
Obrigatórios. O nome do pacote a ser instalado deve atender uma ou mais entre as condições especificadas pelo retorno falso InstallConditions . O pacote deve ser definido no mesmo arquivo usando um elemento PackageFile . |
Arguments |
Opcional. Um conjunto de argumentos de linha de comando a serem passados para o arquivo de pacote. |
EstimatedInstallSeconds |
Opcional. O tempo estimado, em segundos, que levará para instalar o pacote. Esse valor determina o tamanho da barra de progresso que o bootstrapper exibe para o usuário. O padrão é 0, e nesse caso nenhuma estimativa de tempo é especificada. |
EstimatedDiskBytes |
Opcional. A quantidade estimada de espaço em disco, em bytes, que o pacote ocupará após a conclusão da instalação. Esse valor é usado nos requisitos de espaço em disco rígido que o bootstrapper exibe para o usuário. O padrão é 0; nesse caso, o bootstrapper não exibe nenhum requisito de espaço em disco rígido. |
EstimatedTempBytes |
Opcional. A quantidade estimada de espaço em disco temporário, em bytes, que o pacote exigirá. |
Log |
Opcional. O caminho para o arquivo de log gerado pelo pacote, em relação ao diretório raiz do pacote. |
InstallConditions
O elemento InstallConditions
é um elemento filho do elemento Command
. Cada elemento Command
pode ter no máximo um elemento InstallConditions
. Se não houver nenhum elemento InstallConditions
, o pacote especificado por Condition
sempre será executado.
BypassIf
O elemento BypassIf
é um filho do elemento InstallConditions
e descreve uma condição positiva sob a qual o comando não deve ser executado. Cada elemento InstallConditions
pode ter zero ou mais elementos BypassIf
.
BypassIf
possui os atributos a seguir.
Atributo | Descrição |
---|---|
Property |
Obrigatórios. O nome da propriedade a ser testada. A propriedade deve ter sido definida anteriormente por um filho do elemento InstallChecks . Para obter mais informações, confira <Elemento> InstallChecks. |
Compare |
Obrigatórios. O tipo de comparação a ser realizada. A lista a seguir mostra os valores válidos:ValueEqualTo , ValueNotEqualTo , ValueGreaterThan , ValueGreaterThanOrEqualTo , ValueLessThan , ValueLessThanOrEqualTo , VersionEqualTo , VersionNotEqualTo , VersionGreaterThan , VersionGreaterThanOrEqualTo , VersionLessThan , VersionLessThanOrEqualTo , ValueExists , ValueNotExists |
Value |
Obrigatórios. O valor a ser comparado com a propriedade. |
Schedule |
Opcional. O nome de uma marca Schedule que define quando essa regra deve ser avaliada. |
FailIf
O elemento FailIf
é um filho do elemento InstallConditions
e descreve uma condição positiva sob a qual a instalação deve ser interrompida. Cada elemento InstallConditions
pode ter zero ou mais elementos FailIf
.
FailIf
possui os atributos a seguir.
Atributo | Descrição |
---|---|
Property |
Obrigatórios. O nome da propriedade a ser testada. A propriedade deve ter sido definida anteriormente por um filho do elemento InstallChecks . Para obter mais informações, confira <Elemento> InstallChecks. |
Compare |
Obrigatórios. O tipo de comparação a ser realizada. A lista a seguir mostra os valores válidos:ValueEqualTo , ValueNotEqualTo , ValueGreaterThan , ValueGreaterThanOrEqualTo , ValueLessThan , ValueLessThanOrEqualTo , VersionEqualTo , VersionNotEqualTo , VersionGreaterThan , VersionGreaterThanOrEqualTo , VersionLessThan , VersionLessThanOrEqualTo , ValueExists , ValueNotExists |
Value |
Obrigatórios. O valor a ser comparado com a propriedade. |
String |
Opcional. O texto a ser exibido ao usuário no caso de falha. |
Schedule |
Opcional. O nome de uma marca Schedule que define quando essa regra deve ser avaliada. |
ExitCodes
O elemento ExitCodes
é um filho do elemento Command
. O elemento ExitCodes
contém um ou mais elementos ExitCode
, que determinam o que a instalação deve fazer em resposta ao código de saída de um pacote. Pode haver um elemento opcional ExitCode
sob um elemento Command
. ExitCodes
não tem atributos.
ExitCode
O elemento ExitCode
é um filho do elemento ExitCodes
. O elemento ExitCode
determina o que a instalação deve fazer em resposta a um código de saída de um pacote. ExitCode
não contém elementos filho e tem os atributos a seguir.
Atributo | Descrição |
---|---|
Value |
Obrigatórios. O valor do código de saída ao qual esse elemento ExitCode se aplica. |
Result |
Obrigatórios. Como a instalação deve reagir a esse código de saída. A lista a seguir mostra os valores válidos:Success . Sinaliza o pacote como instalado com êxito.SuccessReboot . Sinaliza o pacote como instalado com êxito e instrui o sistema a reiniciar.Fail . Sinaliza que houve falha no pacote.FailReboot . Sinaliza que houve falha no pacote e instrui o sistema a reiniciar. |
String |
Opcional. O valor a ser exibido para o usuário em resposta a esse código de saída. |
FormatMessageFromSystem |
Opcional. Determina se é necessário usar a mensagem de erro fornecida pelo sistema correspondente ao código de saída ou usar o valor fornecido em String . Os valores válidos são true , o que significa usar o erro fornecido pelo sistema e false , o que significa usar a cadeia de caracteres fornecida por String . O padrão é false . Se essa propriedade for false , mas String não estiver definida, o erro fornecido pelo sistema será usado. |
Exemplo
O exemplo de código a seguir define comandos para instalar o .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>