Mendapatkan Informasi Konteks untuk Tindakan Kustom Eksekusi yang Ditangguhkan

Karena skrip penginstalan dapat dijalankan di luar sesi penginstalan tempat skrip ditulis, sesi mungkin tidak lagi ada selama eksekusi skrip penginstalan. Dalam hal ini, handel sesi asli dan properti yang diatur selama urutan penginstalan tidak tersedia untuk tindakan kustom eksekusi yang ditangguhkan. Fungsi apa pun yang memerlukan handel sesi dibatasi untuk beberapa metode yang dapat mengambil informasi konteks, atau properti lain yang diperlukan selama eksekusi skrip harus ditulis ke dalam skrip penginstalan. Misalnya, tindakan kustom yang ditangguhkan yang memanggil pustaka tautan dinamis (DLL) melewati handel yang hanya dapat digunakan untuk mendapatkan informasi dalam jumlah yang sangat terbatas. Fungsi yang tidak memerlukan handel sesi dapat diakses dari tindakan kustom yang ditangguhkan.

Tindakan kustom eksekusi yang ditangguhkan dibatasi hanya untuk memanggil fungsi berikut yang memerlukan handel.

Fungsi Deskripsi
MsiGetProperty Mendukung sekumpulan properti terbatas saat digunakan dengan tindakan kustom eksekusi yang ditangguhkan: properti CustomActionData, properti ProductCode , dan properti UserSID . Menerapkan tindakan kustom tidak dapat menggunakan fungsi MsiGetProperty untuk mendapatkan properti ProductCode . Menerapkan tindakan kustom dapat menggunakan properti CustomActionData untuk mendapatkan kode produk.
MsiFormatRecord Mendukung sekumpulan properti terbatas saat digunakan dengan tindakan kustom eksekusi yang ditangguhkan: properti CustomActionData dan ProductCode.
MsiGetMode Ketika dipanggil dari tindakan kustom eksekusi yang ditangguhkan, melakukan tindakan kustom, atau memutar kembali tindakan kustom, MsiGetMode mengembalikan True atau False saat diminta untuk memeriksa parameter mode MSIRUNMODE_SCHEDULED, MSIRUNMODE_COMMIT, atau MSIRUNMODE_ROLLBACK. Permintaan untuk memeriksa parameter mode eksekusi lainnya dari tindakan kustom yang ditangguhkan, diterapkan, atau digulung balik mengembalikan False.
MsiGetLanguage ID bahasa numerik untuk produk saat ini. Menerapkan tindakan kustom tidak dapat menggunakan fungsi MsiGetLanguage . Menerapkan tindakan kustom dapat menggunakan properti CustomActionData untuk mendapatkan ID bahasa numerik.
MsiProcessMessage Memproses pesan kesalahan atau kemajuan dari tindakan kustom.

 

Tindakan kustom yang ditulis dalam JScript atau VBScript memerlukan objek Sesi penginstalan. Ini adalah jenis Objek Sesi dan alat penginstal melampirkannya ke skrip dengan nama "Sesi". Karena objek Sesi mungkin tidak ada selama putar kembali penginstalan, tindakan kustom yang ditangguhkan yang ditulis dalam skrip harus menggunakan salah satu metode atau properti berikut dari objek Sesi untuk mengambil konteksnya.

Nama Deskripsi
Properti Mode Mengembalikan True hanya untuk MSIRUNMODE_SCHEDULED.
Properti Properti (Objek Sesi) Mengembalikan properti CustomActionData, properti ProductCode , atau properti UserSID .
Properti Bahasa (Objek Sesi) Mengembalikan ID bahasa numerik dari sesi penginstalan.
Metode Pesan Dipanggil untuk menangani kesalahan dan kemajuan.
Properti Penginstal Mengembalikan objek induk, yang digunakan untuk fungsi non-sesi seperti akses registri dan manajemen konfigurasi alat penginstal.

 

Nilai properti yang diatur pada saat urutan penginstalan diproses menjadi skrip mungkin tidak tersedia pada saat eksekusi skrip. Hanya sekumpulan properti terbatas berikut yang selalu dapat diakses oleh tindakan kustom selama eksekusi skrip.

Nama properti Deskripsi
CustomActionData Nilai pada saat tindakan kustom diproses dalam tabel berurutan. Properti CustomActionData hanya tersedia untuk tindakan kustom eksekusi yang ditangguhkan. Tindakan kustom langsung tidak memiliki akses ke properti ini.
ProductCode Kode unik untuk produk, string GUID .
UserSID Diatur oleh alat penginstal ke pengidentifikasi keamanan (SID) pengguna.

 

Jika data properti lain diperlukan oleh tindakan kustom eksekusi yang ditangguhkan, maka nilainya harus disimpan dalam skrip penginstalan. Ini dapat dilakukan dengan menggunakan tindakan kustom kedua.

Untuk menulis nilai properti ke dalam skrip penginstalan untuk digunakan selama tindakan kustom eksekusi yang ditangguhkan

  1. Sisipkan tindakan kustom kecil ke dalam urutan penginstalan yang mengatur properti yang menarik ke properti yang memiliki nama yang sama dengan tindakan kustom eksekusi yang ditangguhkan. Misalnya, jika kunci primer untuk tindakan kustom eksekusi yang ditangguhkan adalah "MyAction" atur properti bernama "MyAction" ke properti X yang perlu Anda ambil. Anda harus mengatur properti "MyAction" dalam urutan penginstalan sebelum tindakan kustom "MyAction". Meskipun semua jenis tindakan kustom dapat mengatur data konteks, metode paling sederhana adalah menggunakan tindakan kustom penetapan properti (misalnya Jenis Tindakan Kustom 51).
  2. Pada saat urutan penginstalan diproses, alat penginstal akan menulis nilai properti X ke dalam skrip eksekusi sebagai nilai properti CustomActionData.

Tentang Properti

Menggunakan Properti

Referensi Properti