次の方法で共有


<Commands> 要素 (ClickOnce ブートストラップ)

更新 : 2007 年 11 月

Commands 要素では、InstallChecks 要素の下の要素に記述されているテストを実行し、テストが失敗した場合に ClickOnce ブートストラップでどのパッケージをインストールする必要があるのかを宣言します。

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

要素および属性

Commands 要素は必須です。 要素には、次の属性があります。

属性

説明

Reboot

省略できます。いずれかのパッケージから再起動を示す終了コードが返された場合に、システムを再起動する必要があるかどうかを指定します。有効な値は次のとおりです。

Defer。再起動をしばらく延期します。

Immediate。いずれかのパッケージから再起動を示す終了コードが返された場合は、すぐに再起動します。

None。再起動の要求を無視します。

既定値は Immediate です。

コマンド

Command 要素は、Commands 要素の子要素です。Commands 要素は Command 要素を 1 つ以上持つことができます。この要素には、次の属性があります。

属性

説明

PackageFile

必ず指定します。InstallConditions で指定された条件の 1 つ以上で false が戻ったときに、インストールする必要のあるパッケージの名前です。このパッケージは、PackageFile 要素を使用して、同じファイル内で定義されている必要があります。

Arguments

省略できます。パッケージ ファイルに渡す一連のコマンド ライン引数です。

EstimatedInstallSeconds

省略できます。パッケージのインストールに必要な時間 (秒単位) の予想値です。この値によって、ブートストラップがユーザーに表示するプログレス バーのサイズが決まります。既定値は 0 です。この場合、予想時間は指定されません。

EstimatedDiskBytes

省略できます。インストール完了後にパッケージによって占有される総ディスク容量 (バイト単位) の予想値です。この値は、ブートストラップがユーザーに表示するディスク容量の要件として使用されます。既定値は 0 です。この場合、ブートストラップでは、ディスク容量の要件が表示されません。

EstimatedTempBytes

省略できます。パッケージに必要な、一時ディスク容量 (バイト単位) の予想値です。

Log

省略できます。パッケージが作成するログ ファイルのパスを、パッケージのルート ディレクトリからの相対ディレクトリで指定します。

InstallConditions

InstallConditions 要素は、Command 要素に必須の子です。各 Command 要素は、1 つ以上の InstallConditions 要素を持つことができます。InstallConditions 要素が存在しない場合、Condition で指定されたパッケージが常に実行されます。

BypassIf

BypassIf 要素は InstallConditions 要素の子要素です。コマンドを実行しない場合の肯定条件を記述します。各 InstallConditions 要素は、BypassIf 要素を 0 個以上持つことができます。

BypassIf には、以下の属性があります。

属性

説明

Property

必ず指定します。テストするプロパティの名前です。プロパティは、InstallChecks 要素の子要素によって、あらかじめ定義されている必要があります。詳細については、「<InstallChecks> 要素 (ClickOnce ブートストラップ)」を参照してください。

Compare

必ず指定します。実行する比較の種類です。有効な値は次のとおりです。

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

Value

必ず指定します。プロパティと比較する値です。

Schedule

省略できます。この規則をいつ評価するのかを定義してある Schedule タグの名前です。

FailIf

FailIf 要素は InstallConditions 要素の子要素です。インストールを中止する肯定条件を記述します。各 InstallConditions 要素は、FailIf 要素を 0 個以上持つことができます。

FailIf には、以下の属性があります。

属性

説明

Property

必ず指定します。テストするプロパティの名前です。プロパティは、InstallChecks 要素の子要素によって、あらかじめ定義されている必要があります。詳細については、「<InstallChecks> 要素 (ClickOnce ブートストラップ)」を参照してください。

Compare

必ず指定します。実行する比較の種類です。有効な値は次のとおりです。

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

Value

必ず指定します。プロパティと比較する値です。

String

省略できます。失敗時にユーザーに表示するテキストです。

Schedule

省略できます。この規則をいつ評価するのかを定義する Schedule タグの名前です。

ExitCodes

ExitCodes 要素は、Command 要素に必須の子です。ExitCodes 要素は、パッケージの終了コードに応じてインストールが実行する内容を指定する 1 つ以上の ExitCode 要素を含みます。Command 要素の下には、オプションで 1 個の ExitCode 要素を指定できます。ExitCodes に属性はありません。

ExitCode

ExitCode 要素は、ExitCodes 要素に必須の子です。ExitCode 要素には、パッケージの終了コードに応じてインストールが実行する内容を指定します。ExitCode に子要素はなく、次の属性があります。

属性

説明

Value

必ず指定します。この ExitCode 要素を適用する終了コード値です。

Result

必ず指定します。この終了コードに対応するインストーラの処理を指定します。有効な値は次のとおりです。

Success。正常にインストールされたことを示すフラグをパッケージに付けます。

SuccessReboot。正常にインストールされたことを示すフラグをパッケージに付け、再起動するようにシステムに指示します。

Fail。インストールが失敗したことを示すフラグをパッケージに付けます。

FailReboot。インストールが失敗したことを示すフラグをパッケージに付け、再起動するようにシステムに指示します。

String

省略できます。この終了コードに対応して、ユーザーに表示する文字列を指定します。

FormatMessageFromSystem

省略できます。この終了コードに対応する、システムで用意されているエラー メッセージを表示するのか、String に指定した値を使用するのかを指定します。有効な値は、true (システムで用意されているエラーを使用) および false (String に指定した値を使用) です。既定値は false です。このプロパティが false で、String が設定されていない場合、システムが提供するエラーが使用されます。

使用例

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

参照

参照

製品およびパッケージ スキーマ リファレンス

<InstallChecks> 要素 (ClickOnce ブートストラップ)