Mengurutkan Tindakan Kustom
Tindakan kustom dijadwalkan dalam tabel berurutan dengan cara yang sama seperti tindakan standar.
Untuk menjadwalkan tindakan kustom dalam tabel berurutan
- Masukkan nama tindakan kustom (yang merupakan kunci utama tabel CustomAction) ke dalam kolom Tindakan dari tabel Urutan.
- Masukkan urutan tindakan kustom relatif terhadap tindakan lain dalam tabel ke dalam kolom Urutan pada tabel Urutan. Untuk informasi selengkapnya tentang tabel urutan, lihat Menggunakan Tabel Urutan.
- Untuk melewati tindakan secara kondisional, masukkan ekspresi kondisional ke dalam kolom Kondisi dari tabel Urutan. Alat penginstal melewati tindakan ini jika ekspresi dievaluasi menjadi salah.
Seperti dalam kasus tindakan standar, tindakan kustom yang dijadwalkan dalam InstallUISequence atau AdminUISequence berjalan hanya jika antarmuka pengguna internal diatur ke tingkat penuh. Tingkat UI diatur dengan menggunakan fungsiMsiSetInternalUI.
Tindakan standar dan kustom yang dijadwalkan dalam InstallExecuteSequence, AdminExecuteSequence, atau tabel AdvtExecuteSequence tidak membuat perubahan sistem. Sebagai gantinya, alat penginstal mengantre rekaman eksekusi dalam skrip untuk eksekusi berikutnya selama layanan penginstalan. Jika tidak ada layanan penginstalan, maka tindakan yang dijadwalkan dalam tabel ini dijalankan dalam konteks yang sama dengan urutan UI.
Jika server penginstal tidak terdaftar, tindakan kustom dijalankan di sisi klien. Jika server terdaftar dan menggunakan mode UI penuh, maka tindakan kustom dijalankan di sisi server.
Jika menggunakan antarmuka pengguna penuh dengan server, tindakan awal sebelum tindakan InstallValidate dijalankan pada klien untuk memungkinkan interaksi penuh. Eksekusi kemudian dialihkan ke server yang mengulangi tindakan tersebut dan menjalankan tindakan eksekusi skrip. Ini diikuti oleh pengembalian ke klien untuk tindakan akhir.
Perhatikan bahwa jika produk dihapus dengan mengatur fitur teratasnya agar tidak ada, properti REMOVE mungkin tidak sama dengan ALL sampai setelah tindakan InstallValidate. Ini berarti bahwa tindakan kustom apa pun yang bergantung pada REMOVE=ALL harus diurutkan setelah tindakan InstallValidate. Aksi kustom dapat memeriksa REMOVE untuk menentukan apakah produk telah diatur untuk di-uninstall sepenuhnya.
Tindakan kustom yang mereferensikan file yang diinstal sebagai sumbernya, seperti Tindakan Kustom Tipe 17 (DLL), Tindakan Kustom Tipe 18 (EXE), Tindakan Kustom Tipe 21 (JSkrip), dan Tindakan Kustom Tipe 22 (VBScript), harus mematuhi pembatasan urutan berikut.
- Tindakan kustom harus diurutkan setelah tindakan CostFinalize sehingga jalur ke file yang direferensikan dapat diselesaikan.
- Jika file sumber belum diinstal di komputer, tindakan kustom yang ditangguhkan (dalam skrip) harus diurutkan setelah InstallFiles.
- Jika file sumber belum terinstal pada komputer, tindakan kustom yang tidak tertunda harus diurutkan setelah tindakan InstallInitialize.
Pembatasan urutan berikut berlaku untuk tindakan kustom yang mengubah atau memperbarui paket Penginstal Windows.
- Jika tindakan kustom mengubah paket, seperti dengan menambahkan baris ke tabel, tindakan harus diurutkan sebelum tindakan InstallInitialize.
- Jika tindakan kustom membuat perubahan yang akan memengaruhi biaya, tindakan tersebut harus diurutkan sebelum tindakan CostInitialize.
- Jika tindakan kustom mengubah status penginstalan fitur atau komponen, tindakan tersebut harus diurutkan sebelum tindakan InstallValidate.