Bagikan melalui


Elemen <Commands> (bootstrapper)

Elemen Commands mengimplementasikan pengujian yang dijelaskan oleh elemen di bawah elemen InstallChecks, dan menyatakan paket yang harus diinstal oleh bootstrapper ClickOnce jika pengujian gagal.

Sintaks

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

Elemen dan atribut

Commands Elemen diperlukan. Elemen memiliki atribut berikut.

Atribut Deskripsi
Reboot Opsional. Menentukan jika sistem harus dimulai ulang jika salah satu paket mengembalikan kode keluar hidupkan ulang. Daftar berikut ini memperlihatkan nilai yang valid:

Defer. Hidupkan ulang ditangguhkan sampai beberapa waktu mendatang.

Immediate. Menyebabkan mulai ulang segera jika salah satu paket mengembalikan kode keluar hidupkan ulang.

None. Menyebabkan permintaan hidupkan ulang diabaikan.

Default adalah Immediate.

Perintah

Elemen Command adalah elemen turunan dari elemen Commands. Elemen Commands dapat memiliki satu elemen Command atau lebih. Elemen ini memiliki atribut berikut.

Atribut Deskripsi
PackageFile Harus diisi. Nama paket yang akan diinstal harus satu atau beberapa kondisi yang ditentukan oleh InstallConditions mengembalikan false. Paket harus didefinisikan dalam file yang sama dengan menggunakan elemen PackageFile.
Arguments Opsional. Sekumpulan argumen baris perintah untuk diteruskan ke file paket.
EstimatedInstallSeconds Opsional. Perkiraan waktu, dalam detik, akan diperlukan untuk menginstal paket. Nilai ini menentukan ukuran bilah kemajuan yang ditampilkan bootstrapper kepada pengguna. Defaultnya adalah 0, dalam hal ini tidak ada perkiraan waktu yang ditentukan.
EstimatedDiskBytes Opsional. Perkiraan jumlah ruang disk, dalam byte, yang akan ditempati paket setelah penginstalan selesai. Nilai ini digunakan dalam persyaratan ruang hard disk yang ditampilkan bootstrapper kepada pengguna. Defaultnya adalah 0, dalam hal ini bootstrapper tidak menampilkan persyaratan ruang hard disk apa pun.
EstimatedTempBytes Opsional. Perkiraan jumlah ruang disk sementara, dalam byte, yang akan diperlukan paket.
Log Opsional. Jalur ke file log yang dihasilkan paket, relatif terhadap direktori akar paket.

InstallConditions

Elemen InstallConditions adalah turunan dari elemen Command. Setiap elemen Command dapat memiliki paling banyak satu elemen InstallConditions. Jika tidak ada elemen InstallConditions, paket yang ditentukan oleh Condition akan selalu berjalan.

BypassIf

Elemen BypassIf adalah turunan dari elemen InstallConditions, dan menjelaskan kondisi positif saat perintah tidak boleh dijalankan. Setiap elemen InstallConditions dapat memiliki nol elemen BypassIf atau lebih.

BypassIf memiliki atribut berikut.

Atribut Deskripsi
Property Harus diisi. Nama properti yang akan diuji. Properti sebelumnya harus didefinisikan oleh turunan dari elemen InstallChecks. Untuk informasi selengkapnya, lihat <InstallChecks> Elemen.
Compare Harus diisi. Jenis perbandingan yang harus dilakukan. Daftar berikut ini memperlihatkan nilai yang valid:

ValueEqualTo, , ValueGreaterThanValueNotEqualTo, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionNotEqualTo, VersionGreaterThan, VersionGreaterThanOrEqualTo, VersionLessThan, VersionLessThanOrEqualTo, , , ValueExistsValueNotExists
Value Harus diisi. Nilai untuk dibandingkan dengan properti.
Schedule Opsional. Nama tag Schedule yang menentukan kapan aturan ini harus dievaluasi.

FailIf

Elemen FailIf adalah turunan dari elemen InstallConditions, dan menjelaskan kondisi positif saat penginstalan harus berhenti. Setiap elemen InstallConditions dapat memiliki nol elemen FailIf atau lebih.

FailIf memiliki atribut berikut.

Atribut Deskripsi
Property Harus diisi. Nama properti yang akan diuji. Properti sebelumnya harus didefinisikan oleh turunan dari elemen InstallChecks. Untuk informasi selengkapnya, lihat <InstallChecks> Elemen.
Compare Harus diisi. Jenis perbandingan yang harus dilakukan. Daftar berikut ini memperlihatkan nilai yang valid:

ValueEqualTo, , ValueGreaterThanValueNotEqualTo, ValueGreaterThanOrEqualTo, ValueLessThan, ValueLessThanOrEqualTo, VersionEqualTo, VersionNotEqualTo, VersionGreaterThan, VersionGreaterThanOrEqualTo, VersionLessThan, VersionLessThanOrEqualTo, , , ValueExistsValueNotExists
Value Harus diisi. Nilai untuk dibandingkan dengan properti.
String Opsional. Teks yang akan ditampilkan kepada pengguna setelah kegagalan.
Schedule Opsional. Nama tag Schedule yang menentukan kapan aturan ini harus dievaluasi.

ExitCodes

Elemen ExitCodes adalah turunan dari elemen Command. Elemen ExitCodes berisi satu atau beberapa elemen ExitCode, yang menentukan apa yang harus dilakukan penginstalan sebagai respons terhadap kode keluar dari paket. Mungkin ada satu elemen ExitCode opsional di bawah elemen Command. ExitCodes tidak memiliki atribut.

ExitCode

Elemen ExitCode adalah turunan dari elemen ExitCodes. Elemen ExitCode menentukan apa yang harus dilakukan penginstalan sebagai respons terhadap kode keluar dari paket. ExitCode tidak berisi elemen turunan, dan memiliki atribut berikut.

Atribut Deskripsi
Value Harus diisi. Nilai kode keluar tempat elemen ExitCode berlaku.
Result Harus diisi. Cara penginstalan harus bereaksi terhadap kode keluar ini. Daftar berikut ini memperlihatkan nilai yang valid:

Success. Menandai paket sebagai berhasil diinstal.

SuccessReboot. Menandai paket sebagai berhasil diinstal, dan menginstruksikan sistem untuk memulai ulang.

Fail. Menandai paket sebagai gagal.

FailReboot. Menandai paket sebagai gagal, dan menginstruksikan sistem untuk memulai ulang.
String Opsional. Nilai yang akan ditampilkan kepada pengguna sebagai respons terhadap kode keluar ini.
FormatMessageFromSystem Opsional. Menentukan jika akan menggunakan pesan kesalahan yang disediakan sistem yang sesuai dengan kode keluar, atau menggunakan nilai yang disediakan dalam String. Nilai yang valid adalah true, yang berarti menggunakan kesalahan yang disediakan sistem, dan false, yang berarti menggunakan string yang disediakan oleh String. Default adalah false. Jika properti ini adalah false, tetapi String tidak diatur, kesalahan yang disediakan sistem akan digunakan.

Contoh

Contoh kode berikut menentukan perintah untuk menginstal .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>

Baca juga