Share via


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>

Confira também