Bagikan melalui


<Elemen InstallChecks> (bootstrapper)

Elemen ini InstallChecks mendukung memulai berbagai pengujian terhadap komputer lokal untuk memastikan bahwa semua prasyarat yang sesuai untuk aplikasi telah diinstal.

Sintaks

<InstallChecks>
    <AssemblyCheck
        Property
        Name
        PublicKeyToken
        Version
        Language
        ProcessorArchitecture
    />
    <RegistryCheck
        Property
        Key
        Value
    />
    <ExternalCheck
        PackageFile
        Property
        Arguments
    />
    <FileCheck
        Property
        FileName
        SearchPath
        SpecialFolder
        SearchDepth
    />
    <MsiProductCheck
        Property
        Product
        Feature
    />
    <RegistryFileCheck
        Property
        Key
        Value
        FileName
        SearchDepth
    />
</InstallChecks>

AssemblyCheck

Elemen ini adalah elemen turunan opsional dari InstallChecks. Untuk setiap instans AssemblyCheck, bootstrapper akan memastikan bahwa rakitan yang diidentifikasi oleh elemen ada di cache perakitan global (GAC). Ini tidak berisi elemen, dan memiliki atribut berikut.

Atribut Deskripsi
Property Harus diisi. Nama properti untuk menyimpan hasilnya. Properti ini dapat dirujuk dari pengujian di bawah InstallConditions elemen , yang merupakan turunan dari Command elemen . Untuk informasi selengkapnya, lihat <Elemen> Perintah.
Name Harus diisi. Nama assembly yang sepenuhnya memenuhi syarat untuk diperiksa.
PublicKeyToken Harus diisi. Bentuk singkatan dari kunci publik yang terkait dengan rakitan bernama kuat ini. Semua rakitan yang disimpan di GAC harus memiliki nama, versi, dan kunci publik.
Version Harus diisi. Versi rakitan.

Nomor versi memiliki versi utama format<.<>versi> minor.<versi> build.<versi> revisi.
Language Opsional. Bahasa rakitan yang dilokalkan. Defaultnya adalah neutral.
ProcessorArchitecture Opsional. Prosesor komputer yang ditargetkan oleh penginstalan ini. Defaultnya adalah msil.

ExternalCheck

Elemen ini adalah elemen turunan opsional dari InstallChecks. Untuk setiap instans ExternalCheck, bootstrapper akan menjalankan program eksternal bernama dalam proses terpisah, dan menyimpan kode keluarnya di properti yang ditunjukkan oleh Property. ExternalCheck berguna untuk menerapkan pemeriksaan dependensi yang kompleks, atau ketika satu-satunya cara untuk memeriksa keberadaan komponen adalah dengan membuat instansnya.

ExternalCheck tidak berisi elemen, dan memiliki atribut berikut.

Atribut Deskripsi
Property Harus diisi. Nama properti untuk menyimpan hasilnya. Properti ini dapat dirujuk dari pengujian di bawah InstallConditions elemen , yang merupakan turunan dari Command elemen . Untuk informasi selengkapnya, lihat <Elemen> Perintah.
PackageFile Harus diisi. Program eksternal yang akan dijalankan. Program harus menjadi bagian dari paket distribusi penyetelan.
Arguments Opsional. Memasok argumen baris perintah ke executable yang dinamai oleh PackageFile.

FileCheck

Elemen ini adalah elemen turunan opsional dari InstallChecks. Untuk setiap instans FileCheck, bootstrapper akan menentukan apakah file bernama ada, dan mengembalikan nomor versi file. Jika file tidak memiliki nomor versi, bootstrapper mengatur properti bernama menjadi Property 0. Jika file tidak ada, Property tidak diatur ke nilai apa pun.

FileCheck tidak berisi elemen, dan memiliki atribut berikut.

Atribut Deskripsi
Property Harus diisi. Nama properti untuk menyimpan hasilnya. Properti ini dapat dirujuk dari pengujian di bawah InstallConditions elemen , yang merupakan turunan dari Command elemen . Untuk informasi selengkapnya, lihat <Elemen> Perintah.
FileName Harus diisi. Nama file yang akan ditemukan.
SearchPath Harus diisi. Disk atau folder untuk mencari file. Ini harus menjadi jalur relatif jika SpecialFolder ditetapkan; jika tidak, itu harus merupakan jalur absolut.
SpecialFolder Opsional. Folder yang memiliki signifikansi khusus baik ke Windows atau ke ClickOnce. Defaultnya adalah menafsirkan SearchPath sebagai jalur absolut. Nilai yang valid mencakup hal-hal berikut:

AppDataFolder. Folder data aplikasi untuk aplikasi ClickOnce ini; khusus untuk pengguna saat ini.

CommonAppDataFolder. Folder data aplikasi yang digunakan oleh semua pengguna.

CommonFilesFolder. Folder File Umum untuk pengguna saat ini.

LocalDataAppFolder. Folder data untuk aplikasi non-roaming.

ProgramFilesFolder. Folder Program Files standar untuk aplikasi 32-bit.

StartUpFolder. Folder yang berisi semua aplikasi yang diluncurkan saat startup sistem.

SystemFolder. Folder yang berisi DLL sistem 32-bit.

WindowsFolder. Folder yang berisi penginstalan sistem Windows.

WindowsVolume. Kandar atau partisi yang berisi penginstalan sistem Windows.
SearchDepth Opsional. Kedalaman untuk mencari sub-folder untuk file bernama. Pencariannya mengutamakan kedalaman. Defaultnya adalah 0, yang membatasi pencarian ke folder tingkat atas yang ditentukan oleh SpecialFolder dan SearchPath.

MsiProductCheck

Elemen ini adalah elemen turunan opsional dari InstallChecks. Untuk setiap instans MsiProductCheck, bootstrapper memeriksa untuk melihat apakah penginstalan Microsoft Windows Installer yang ditentukan telah berjalan hingga selesai. Nilai properti diatur tergantung pada status produk yang diinstal. Nilai positif menunjukkan produk diinstal, 0 atau -1 menunjukkan bahwa produk tidak diinstal. (Silakan lihat fungsi Windows Installer SDK MsiQueryFeatureState untuk informasi selengkapnya.) . Jika Penginstal Windows tidak diinstal pada komputer, Property tidak diatur.

MsiProductCheck tidak berisi elemen, dan memiliki atribut berikut.

Atribut Deskripsi
Property Harus diisi. Nama properti untuk menyimpan hasilnya. Properti ini dapat dirujuk dari pengujian di bawah InstallConditions elemen , yang merupakan turunan dari Command elemen . Untuk informasi selengkapnya, lihat <Elemen> Perintah.
Product Harus diisi. GUID untuk produk yang diinstal.
Feature Opsional. GUID untuk fitur tertentu dari aplikasi yang diinstal.

RegistryCheck

Elemen ini adalah elemen turunan opsional dari InstallChecks. Untuk setiap instans RegistryCheck, bootstrapper memeriksa untuk melihat apakah kunci registri yang ditentukan ada, atau apakah itu memiliki nilai yang ditunjukkan.

RegistryCheck tidak berisi elemen, dan memiliki atribut berikut.

Atribut Deskripsi
Property Harus diisi. Nama properti untuk menyimpan hasilnya. Properti ini dapat dirujuk dari pengujian di bawah InstallConditions elemen , yang merupakan turunan dari Command elemen . Untuk informasi selengkapnya, lihat <Elemen> Perintah.
Key Harus diisi. Nama kunci registri.
Value Opsional. Nama nilai registri yang akan diambil. Defaultnya adalah mengembalikan teks nilai default. Value harus berupa String atau DWORD.

RegistryFileCheck

Elemen ini adalah elemen turunan opsional dari InstallChecks. Untuk setiap instans RegistryFileCheck, bootstrapper mengambil versi file yang ditentukan, pertama-tama mencoba mengambil jalur ke file dari kunci registri yang ditentukan. Ini sangat berguna jika Anda ingin mencari file dalam direktori yang ditentukan sebagai nilai dalam registri.

RegistryFileCheck tidak berisi elemen, dan memiliki atribut berikut.

Atribut Deskripsi
Property Harus diisi. Nama properti untuk menyimpan hasilnya. Properti ini dapat dirujuk dari pengujian di bawah InstallConditions elemen , yang merupakan turunan dari Command elemen . Untuk informasi selengkapnya, lihat <Elemen> Perintah.
Key Harus diisi. Nama kunci registri. Nilainya ditafsirkan sebagai jalur ke file, kecuali File atribut diatur. Jika kunci ini tidak ada, Property tidak diatur.
Value Opsional. Nama nilai registri yang akan diambil. Defaultnya adalah mengembalikan teks nilai default. Value harus berupa String.
FileName Opsional. Nama file. Jika ditentukan, nilai yang diperoleh dari kunci registri diasumsikan sebagai jalur direktori, dan nama ini ditambahkan ke dalamnya. Jika tidak ditentukan, nilai yang dikembalikan dari registri diasumsikan sebagai jalur lengkap ke file.
SearchDepth Opsional. Kedalaman untuk mencari sub-folder untuk file bernama. Pencariannya mengutamakan kedalaman. Defaultnya adalah 0, yang membatasi pencarian ke folder tingkat atas yang ditentukan oleh nilai kunci registri.

Keterangan

Sementara elemen di bawahnya InstallChecks menentukan pengujian yang akan dijalankan, elemen tersebut tidak mengeksekusinya. Untuk menjalankan pengujian, Anda harus membuat Command elemen di Commands bawah elemen .

Contoh

Contoh kode berikut menunjukkan InstallChecks elemen seperti yang digunakan dalam file produk untuk .NET Framework.

<InstallChecks>
    <ExternalCheck Property="DotNetInstalled" PackageFile="dotnetchk.exe" />
    <RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
</InstallChecks>

InstallConditions

Ketika InstallChecks dievaluasi, mereka menghasilkan properti. Properti kemudian digunakan oleh InstallConditions untuk menentukan apakah paket harus menginstal, melewati, atau gagal. Tabel berikut mencantumkan InstallConditions:

Kondisi Deskripsi
FailIf Jika ada FailIf kondisi yang dievaluasi ke true, paket akan gagal. Sisa kondisi tidak akan dievaluasi.
BypassIf Jika ada BypassIf kondisi yang dievaluasi ke true, paket akan dilewati. Sisa kondisi tidak akan dievaluasi.

Properti yang telah ditentukan sebelumnya

Tabel berikut mencantumkan BypassIf elemen dan FailIf :

Properti Catatan Nilai yang Mungkin
Version9X Nomor versi sistem operasi Windows 9X. 4.10 = Windows 98
VersionNT Nomor versi sistem operasi Windows. Major.Minor.ServicePack
VersionNT64 Nomor versi sistem operasi Windows 64-bit. Major.Minor.ServicePack.
VersionMsi Nomor versi layanan Penginstal Windows. 2.0 = Windows Installer 2.0
AdminUser Menentukan apakah pengguna memiliki hak istimewa administrator pada sistem operasi berbasis Windows NT. 0 = tidak ada hak istimewa administrator

1 = hak istimewa administrator

Misalnya, untuk memblokir penginstalan di komputer yang menjalankan Windows 8, gunakan kode seperti berikut:

    <!-- Block install on Windows 8 -->
    <FailIf Property="VersionNT64" Compare="VersionLessThan" Value="6.2" String="InvalidPlatform"/>

Untuk melewati pemeriksaan penginstalan yang berjalan jika kondisi FailIf atau BypassIf terpenuhi, gunakan atribut BeforeInstallChecks. Contoh:

    <!-- Block install and do not evaluate install checks if user does not have admin privileges -->
    <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired" BeforeInstallChecks="true"/>

Catatan

Atribut BeforeInstallChecks didukung dimulai dengan rilis Visual Studio 2019 Update 9.

Baca juga