Sdílet prostřednictvím


<Element Commands> (bootstrapper)

Element Commands implementuje testy popsané prvky pod InstallChecks elementy a deklaruje, který balíček ClickOnce bootstrapper by měl nainstalovat, pokud test selže.

Syntaxe

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

Prvky a atributy

Prvek Commands je povinný. Element má následující atribut.

Atribut Popis
Reboot Nepovinné. Určuje, zda má systém restartovat, pokud některý z balíčků vrátí ukončovací kód restartování. V následujícím seznamu jsou uvedeny platné hodnoty:

Defer. Restartování se odloží do budoucnosti.

Immediate. Způsobí okamžité restartování, pokud některý z balíčků vrátil ukončovací kód restartování.

None. Způsobí ignorování všech požadavků na restartování.

Výchozí hodnota je Immediate.

Příkaz

Element Command je podřízený prvek elementu Commands . Prvek Commands může mít jeden nebo více Command prvků. Element má následující atributy.

Atribut Popis
PackageFile Požadováno. Název balíčku, který se má nainstalovat, by měl mít jednu nebo více podmínek určených InstallConditions hodnotou false. Balíček musí být definován ve stejném souboru pomocí elementu PackageFile .
Arguments Nepovinné. Sada argumentů příkazového řádku, které se mají předat do souboru balíčku.
EstimatedInstallSeconds Nepovinné. Odhadovaný čas v sekundách bude trvat instalaci balíčku. Tato hodnota určuje velikost indikátoru průběhu, který se zobrazí uživateli. Výchozí hodnota je 0, v takovém případě není zadán žádný časový odhad.
EstimatedDiskBytes Nepovinné. Odhadované místo na disku v bajtech, které bude balíček po dokončení instalace zabírat. Tato hodnota se používá v požadavcích na místo na pevném disku, které se uživateli zobrazí bootstrapper. Výchozí hodnota je 0, v takovém případě bootstrapper nezobrazuje žádné požadavky na místo na pevném disku.
EstimatedTempBytes Nepovinné. Odhadované množství dočasného místa na disku v bajtech, které bude balíček vyžadovat.
Log Nepovinné. Cesta k souboru protokolu, který balíček generuje vzhledem ke kořenovému adresáři balíčku.

Installconditions

Element InstallConditions je podřízený prvek Command . Každý Command prvek může mít maximálně jeden InstallConditions prvek. Pokud žádný prvek neexistuje InstallConditions , balíček určený Condition vždy spustí.

BypassIf

Prvek BypassIf je podřízený prvek elementu InstallConditions a popisuje pozitivní podmínku, pod kterou by se příkaz neměl spustit. Každý InstallConditions prvek může mít nula nebo více BypassIf prvků.

BypassIf má následující atributy.

Atribut Popis
Property Požadováno. Název vlastnosti, která se má testovat. Vlastnost musí být dříve definována podřízeným prvkem InstallChecks . Další informace naleznete v tématu <InstallChecks> – element.
Compare Povinný: Typ porovnání, který se má provést. V následujícím seznamu jsou uvedeny platné hodnoty:

ValueEqualTo, ValueNotEqualTo, , ValueGreaterThan, ValueLessThanValueLessThanOrEqualTo, VersionLessThanOrEqualToValueExistsValueGreaterThanOrEqualToVersionEqualToVersionNotEqualToVersionGreaterThanVersionGreaterThanOrEqualToVersionLessThanValueNotExists
Value Povinný: Hodnota, která se má porovnat s vlastností.
Schedule Nepovinné. Název Schedule značky, která definuje, kdy má být toto pravidlo vyhodnoceno.

FailIf

Prvek FailIf je podřízený prvek InstallConditions a popisuje pozitivní stav, pod kterým by se instalace měla zastavit. Každý InstallConditions prvek může mít nula nebo více FailIf prvků.

FailIf má následující atributy.

Atribut Popis
Property Požadováno. Název vlastnosti, která se má testovat. Vlastnost musí být dříve definována podřízeným prvkem InstallChecks . Další informace naleznete v tématu <InstallChecks> – element.
Compare Povinný: Typ porovnání, který se má provést. V následujícím seznamu jsou uvedeny platné hodnoty:

ValueEqualTo, ValueNotEqualTo, , ValueGreaterThan, ValueLessThanValueLessThanOrEqualTo, VersionLessThanOrEqualToValueExistsValueGreaterThanOrEqualToVersionEqualToVersionNotEqualToVersionGreaterThanVersionGreaterThanOrEqualToVersionLessThanValueNotExists
Value Povinný: Hodnota, která se má porovnat s vlastností.
String Nepovinné. Text, který se má uživateli zobrazit při selhání
Schedule Nepovinné. Název Schedule značky, která definuje, kdy má být toto pravidlo vyhodnoceno.

Ukončovací kódy

Element ExitCodes je podřízený prvek Command . Prvek ExitCodes obsahuje jeden nebo více ExitCode prvků, které určují, co má instalace dělat v reakci na ukončovací kód z balíčku. Pod elementem může být jeden volitelný ExitCode prvek Command . ExitCodes nemá žádné atributy.

Exitcode

Element ExitCode je podřízený prvek ExitCodes . Element ExitCode určuje, co má instalace dělat v reakci na ukončovací kód z balíčku. ExitCode neobsahuje žádné podřízené prvky a má následující atributy.

Atribut Popis
Value Požadováno. Hodnota ukončovacího kódu, na kterou se tento ExitCode prvek vztahuje.
Result Povinný: Jak by instalace měla reagovat na tento ukončovací kód. V následujícím seznamu jsou uvedeny platné hodnoty:

Success. Označí balíček jako úspěšně nainstalovaný.

SuccessReboot. Označí balíček jako úspěšně nainstalovaný a dá systému pokyn, aby se restartoval.

Fail. Označí balíček příznakem jako neúspěšný.

FailReboot. Označí balíček příznakem jako neúspěšný a dá systému pokyn, aby se restartoval.
String Nepovinné. Hodnota, která se má uživateli zobrazit v reakci na tento ukončovací kód.
FormatMessageFromSystem Nepovinné. Určuje, zda se má použít systémová chybová zpráva odpovídající ukončovacímu kódu, nebo použít hodnotu zadanou v String. Platné hodnoty jsou true, což znamená použití systémové chyby, a false, což znamená použití řetězce poskytnutého String. Výchozí hodnota je false. Pokud je falsetato vlastnost , ale String není nastavena, použije se chyba zadanou systémem.

Příklad

Následující příklad kódu definuje příkazy pro instalaci rozhraní .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>

Viz také