Freigeben über


<Commands>-Element (ClickOnce-Bootstrapper)

Aktualisiert: November 2007

Das Commands-Element implementiert Tests, die durch die Elemente beschrieben werden, die dem InstallChecks-Element untergeordnet sind. Ferner deklariert es das Paket, das der ClickOnce-Bootstrapper installieren soll, falls der Test negativ ausfällt.

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

Elemente und Attribute

Das Commands-Element ist erforderlich. Das Element verfügt über das folgende Attribut.

Attribut

Beschreibung

Reboot

Optional. Bestimmt, ob das System neu gestartet werden soll, wenn Pakete einen Neustartexitcode zurückgeben. Die folgende Liste zeigt die gültigen Werte:

Defer. Der Neustart wird bis zu einem späteren Zeitpunkt verzögert.

Immediate. Bewirkt einen unmittelbaren Neustart, wenn eines der Pakete einen Neustartexitcode zurückgibt.

None. Bewirkt, dass Neustartanforderungen ignoriert werden.

Der Standardwert ist Immediate.

Command

Das Command-Element ist ein untergeordnetes Element des Commands-Elements. Ein Commands-Element kann über ein oder mehrere Command-Elemente verfügen. Das Element verfügt über die folgenden Attribute.

Attribut

Beschreibung

PackageFile

Erforderlich. Der Name des Pakets, das installiert werden soll, wenn eine oder mehrere der durch InstallConditions angegebenen Bedingungen false zurückgeben. Das Paket muss in derselben Datei mit einem PackageFile-Element definiert werden.

Arguments

Optional. Befehlszeilenargumente, die an die Paketdatei übergeben werden sollen.

EstimatedInstallSeconds

Optional. Der geschätzte Zeitaufwand für die Installation des Pakets in Sekunden. Dieser Wert bestimmt die Größe der Statusanzeige, die der Bootstrapper dem Benutzer anzeigt. Der Standardwert ist 0 (null), d. h., es wird keine Zeitschätzung angegeben.

EstimatedDiskBytes

Optional. Der geschätzte Speicherplatz in Bytes, den das Paket nach Abschluss der Installation einnehmen wird. Dieser Wert bestimmt den erforderlichen Festplattenspeicher, den der Bootstrapper dem Benutzer anzeigt. Der Standardwert ist 0 (null), d. h., der Bootstrapper zeigt keinen erforderlichen Festplattenspeicher an.

EstimatedTempBytes

Optional. Der geschätzte, für das Paket erforderliche temporäre Speicherplatz in Bytes.

Log

Optional. Der Pfad der durch das Paket generierten Protokolldatei, relativ zum Stammverzeichnis des Pakets.

InstallConditions

Das InstallConditions-Element ist ein untergeordnetes Element des Command-Elements. Jedes Command-Element kann über höchstens ein InstallConditions-Element verfügen. Wenn kein InstallConditions-Element vorhanden ist, wird immer das durch Condition angegebene Paket ausgeführt.

BypassIf

Das BypassIf-Element ist ein untergeordnetes Element des InstallConditions-Elements. Es beschreibt eine positive Bedingung, bei deren Erfüllung der Befehl nicht ausgeführt werden soll. Jedes InstallConditions-Element kann über keine oder mehrere BypassIf-Elemente verfügen.

BypassIf verfügt über folgende Attribute.

Attribut

Beschreibung

Property

Erforderlich. Der Name der zu testenden Eigenschaft. Die Eigenschaft muss zuvor durch ein untergeordnetes Element des InstallChecks-Elements definiert worden sein. Weitere Informationen hierzu finden Sie unter <InstallChecks>-Element (ClickOnce-Bootstrapper).

Compare

Erforderlich. Der Typ des auszuführenden Vergleichs. Die folgende Liste zeigt die gültigen Werte:

ValueEqualTo, ValueNotEqualTo, ValueGreaterThan, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionNotEqualTo, VersionGreaterThan, VersionGreaterThanOrEqualTo, VersionLessThan, VersionLessThanOrEqualTo, ValueExists, ValueNotExists

Value

Erforderlich. Der Wert, der mit der Eigenschaft verglichen werden soll.

Schedule

Optional. Der Name eines Schedule-Tags, das definiert, wann diese Regel ausgewertet werden soll.

FailIf

Das FailIf-Element ist ein untergeordnetes Element des InstallConditions-Elements. Es beschreibt eine positive Bedingung, bei deren Erfüllung die Installation angehalten werden soll. Jedes InstallConditions-Element kann über keine oder mehrere FailIf-Elemente verfügen.

FailIf verfügt über folgende Attribute.

Attribut

Beschreibung

Property

Erforderlich. Der Name der zu testenden Eigenschaft. Die Eigenschaft muss zuvor durch ein untergeordnetes Element des InstallChecks-Elements definiert worden sein. Weitere Informationen hierzu finden Sie unter <InstallChecks>-Element (ClickOnce-Bootstrapper).

Compare

Erforderlich. Der Typ des auszuführenden Vergleichs. Die folgende Liste zeigt die gültigen Werte:

ValueEqualTo, ValueNotEqualTo, ValueGreaterThan, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionNotEqualTo, VersionGreaterThan, VersionGreaterThanOrEqualTo, VersionLessThan, VersionLessThanOrEqualTo, ValueExists, ValueNotExists

Value

Erforderlich. Der Wert, der mit der Eigenschaft verglichen werden soll.

String

Optional. Der Text, der dem Benutzer bei einem Fehler angezeigt werden soll.

Schedule

Optional. Der Name eines Schedule-Tags, das definiert, wann diese Regel ausgewertet werden soll.

ExitCodes

Das ExitCodes-Element ist ein untergeordnetes Element des Command-Elements. Das ExitCodes-Element enthält mindestens ein ExitCode-Element, das bestimmt, wie die Installation auf einen Exitcode eines Pakets reagieren soll. Einem Command-Element kann ein optionales ExitCode-Element untergeordnet sein. ExitCodes weist keine Attribute auf.

ExitCode

Das ExitCode-Element ist ein untergeordnetes Element des ExitCodes-Elements. Das ExitCode-Element bestimmt, wie die Installation auf einen Exitcode eines Pakets reagieren soll. ExitCode enthält keine untergeordneten Elemente und weist die folgenden Attribute auf.

Attribut

Beschreibung

Value

Erforderlich. Der Exitcodewert für dieses ExitCode-Element.

Result

Erforderlich. Gibt an, wie die Installation auf diesen Exitcode reagieren soll. Die folgende Liste zeigt die gültigen Werte:

Success. Kennzeichnet das Paket als erfolgreich installiert.

SuccessReboot. Kennzeichnet das Paket als erfolgreich installiert und weist das System an, neu zu starten.

Fail. Kennzeichnet das Paket als fehlgeschlagen.

FailReboot. Kennzeichnet das Paket als fehlgeschlagen und weist das System an, neu zu starten.

String

Optional. Der Wert, der dem Benutzer als Reaktion auf diesen Exitcode angezeigt werden soll.

FormatMessageFromSystem

Optional. Bestimmt, ob die vom System bereitgestellte Fehlermeldung für den Exitcode oder der in String bereitgestellte Wert verwendet wird. Gültige Werte sind true (Verwendung der vom System bereitgestellten Fehlermeldung) und false (Verwendung der durch String bereitgestellten Zeichenfolge). Der Standardwert ist false. Wenn diese Eigenschaft den Wert false hat, String jedoch nicht festgelegt ist, wird die vom System bereitgestellte Fehlermeldung verwendet.

Beispiel

Im folgenden Codebeispiel werden Befehle für die Installation von .NET Framework 2.0 definiert.

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

Siehe auch

Referenz

Referenz zum Produkt- und Paketschema

<InstallChecks>-Element (ClickOnce-Bootstrapper)