Özel Eylemleri Sıralama
Özel eylemler, standart eylemlerle aynı şekilde sıralı tablolarda zamanlanır.
Sıra tablosunda bir özel eylem zamanlamak için
- Özel eylem adını (CustomAction) tablosunun birincil anahtarıdır) Sıralı tablosunun Eylem sütununa girin.
- Özel eylemin tablodaki diğer eylemlere göre sırasını Sıralı tablosunun Sıra sütununa girin. Sıralı tablolar hakkında daha fazla bilgi için bkz. Sıralı Tablo Kullanma.
- Eylemi koşullu olarak atlamak için, Dizisi tablosunun Koşul sütununa bir koşullu ifade girin. İfade YANLIŞ olarak değerlendirilirse yükleyici bu eylemi atlar.
Standart eylemlerde olduğu gibi, InstallUISequence veya AdminUISequence zamanlanan özel eylemler yalnızca iç kullanıcı arabirimi tam düzeye ayarlanmışsa çalışır. Kullanıcı arabirimi düzeyi, MsiSetInternalUI işlevi kullanılarak ayarlanır.
InstallExecuteSequence, AdminExecuteSequenceveya AdvtExecuteSequence tablolarında zamanlanan standart ve özel eylemler sistem değişiklikleri yapmaz. Bunun yerine yükleyici, yükleme hizmeti sırasında daha sonra yürütülmek üzere bir betikte yürütme kayıtlarını sıraya işler. Yükleme hizmeti yoksa, bu tablolarda zamanlanan eylemler kullanıcı arabirimi dizisiyle aynı bağlamda çalıştırılır.
Yükleyici sunucusu kayıtlı değilse, özel eylemler istemci tarafında yürütülür. Sunucu kayıtlıysa ve tam kullanıcı arabirimi modunu kullanıyorsa, özel eylemler sunucu tarafında çalıştırılır.
Sunucuyla tam kullanıcı arabirimi kullanılıyorsa, tam etkileşime izin vermek için InstallValidate eyleminden önceki ilk eylemler istemcide çalıştırılır. Ardından yürütme, bu eylemleri yineleyen ve betik yürütme eylemlerini çalıştıran sunucuya geçirilir. Ardından, son eylemler için müşteriye dönüş yapılır.
Bir ürün en üst özelliği eksik olarak ayarlanarak kaldırılırsa, REMOVE özelliğinin, InstallValidate eyleminden sonraya kadar TÜMÜne eşit olmadığını unutmayın. Bu, REMOVE=ALL'a bağlı olan tüm özel eylemlerin InstallValidate eyleminden sonra sıralanması gerektiği anlamına gelir. Özel bir eylem, bir ürünün tamamen kaldırılacak şekilde ayarlanıp ayarlanmadığını kontrol etmek için KALDIR'ı kontrol edebilir.
Özel Eylem Türü 17 (DLL), Özel Eylem Türü 18 (EXE), Özel Eylem Türü 21 (JScript) ve Özel Eylem Türü 22 (VBScript) gibi, yüklü bir dosyaya kaynakları olarak başvuran özel eylemler aşağıdaki sıralama kısıtlamalarına uymalıdır.
- Başvuruda bulunulan dosyanın yolunun çözümlenebilmesi için özel eylemin CostFinalize eyleminden sonra sıralanması gerekir.
- Kaynak dosya bilgisayarda zaten yüklü değilse, InstallFilessonra ertelenen (betik içi) özel eylemlerin sıralanması gerekir.
- Kaynak dosya bilgisayarda zaten yüklü değilse, InstallInitialize eyleminden sonra ertelenmeyen özel eylemlerin sıralanması gerekir.
Aşağıdaki sıralama kısıtlamaları, Bir Windows Installer paketini değiştiren veya güncelleştiren özel eylemler için geçerlidir.
- Özel eylem, örneğin tabloya satır ekleyerek paketi değiştirirse, eylemin InstallInitialize eyleminden önce sıralanması gerekir.
- Özel eylem maliyetlendirmeyi etkileyecek değişiklikler yaparsa, CostInitialize eyleminden önce sıralanmalıdır.
- Özel eylem özelliklerin veya bileşenlerin yükleme durumunu değiştirirse, InstallValidate eyleminden önce sıralanmalıdır.