Eşzamanlı Yüklemeler
İç İçe Yüklemeler olarak da adlandırılan Eşzamanlı Yüklemeler, Windows Installer'ın kullanım dışı bırakılmış bir özelliğidir. Eşzamanlı yüklemelerle yüklenen uygulamalar, müşterilerin doğru şekilde hizmet vermeleri zor olduğundan sonunda başarısız olabilir. Genel kullanıma sunulmaya yönelik ürünleri yüklemek için eşzamanlı yüklemeleri kullanmayın. Eşzamanlı yüklemeler, genel sürüme yönelik olmayan uygulamaları yüklemek için kullanıldığında denetimli şirket ortamlarında sınırlı uygulanabilirliğe sahip olabilir. Eş zamanlı yükleme belgeleri, ortak dağıtım için olmayan uygulamalarla eşzamanlı yüklemeler kullanmak isteyen paket yazarları için sağlanır.
Eşzamanlı yükleme eylemi, çalışmakta olan bir yükleme sırasında başka bir Windows Installer paketi yükler. CustomAction tablosuna eşzamanlı yükleme eylemi yazılarak ve bu özel eylemi sıralı tablolara zamanlayarak pakete eşzamanlı yükleme eklenir. CustomAction tablosunun Target alanı, eş zamanlı yükleme tarafından kullanılan ortak özellik ayarlarının bir dizesini içerir. CustomAction tablosunun Kaynak alanı eşzamanlı paketi tanımlar. Eşzamanlı yükleme eylemi yalnızca geçerli uygulamanın yükleme paketi tarafından yüklenen bir uygulamayı yeniden yükleyebilir veya kaldırabilir.
Eşzamanlı yükleme eyleminin türü, CustomAction tablosunun Tür alanında belirtilir. Özel eylem türüne bağlı olarak, eş zamanlı uygulamanın paketi ana paketin bir alt deposunda, bir özellik tarafından belirtilen bir konumdaki bir dosya olarak veya kullanıcının makinesinde tanıtılan bir uygulama olarak bulunabilir. Aşağıdaki özel eylem türleri eşzamanlı yükleme gerçekleştirir.
Özel eylem türü | Açıklama |
---|---|
Özel Eylem Türü 7 | Yükleme paketinde bulunan bir ürünün eşzamanlı yüklemesi. |
Özel Eylem Türü 23 | Geçerli kaynak ağaç içinde bir yükleyici paketinin eşzamanlı yüklemesi. |
Özel Eylem Türü 39 | Tanıtılan yükleyici paketinin eşzamanlı yüklemesi. |
Eşzamanlı yükleme, ana yüklemeyle aynı kullanıcı arabirimini ve günlük ayarlarını paylaşır.
Eşzamanlı yükleme eylemleri, ana yüklemenin eylem dizisinin InstallInitialize eylemi ve InstallFinalize eylemi arasına yerleştirilmelidir. Ana yükleme geri alınırsa, yükleyici eşzamanlı yüklemeyi de geri alır. Yükleyici eşzamanlı ve ana yüklemelerdeki geri alma bilgilerini birleştirdiğinden, ertelenen yürütme eşzamanlı yükleme eylemleriyle kullanılması gereksizdir. Geri alma yüklemesinde tüm değişiklikler tersine çevrilir.
Eşzamanlı yükleme eylemlerinin dönüş değerleri diğer özel eylemlerle aynıdır. Bkz. Özel Eylem Dönüş Değerleri.
Sistemin otomatik olarak yeniden başlatılmasını belirten veya kullanıcının yeniden başlatılmasını isteyen standart veya özel eylemler de eşzamanlı yükleme içinden yeniden başlatma veya istek gerçekleştirebilir.
Yükleyici eşzamanlı yüklemeye başladıktan sonra, eş zamanlı yükleme tamamlanana ve ana yüklemeye devam etmeden önce diğer tüm yüklemeleri kilitler. Yükleyici yalnızca eşzamanlı yüklemeleri zaman uyumlu özel eylemler olarak yürütebilir. Bkz. Zaman Uyumlu ve Zaman Uyumsuz Özel Eylemler. Özel Eylem dönüş İşleme Seçenekleri tanımlanan seçenek bayrakları yok (+0) veya msidbCustomActionTypeContinue (+64) olarak ayarlanmalıdır.
Eşzamanlı yükleme eylemi yerel olarak çalıştırılacak, kaynaktan çalıştırılacak, yeniden yüklenecek veya normal yükleme için MsiInstallProduct kullanıldığında olduğu gibi kaldırılacak bir uygulama yükleyebilir. Yükleme türünü belirtmek için ADDLOCAL, ADDSOURCE, REINSTALLveya REMOVE özelliğini eşzamanlı yükleme eylemine geçirin.
Eş zamanlı yükleme eylemleri çiftler halinde yazılabilir; bir eylem yüklemek için kullanılır ve diğer eylem de eşzamanlı yüklemeyi kaldırmak için kullanılır. Özel Eylem Türü 7 veya Özel Eylem Türü 23 genellikle yüklemek için kullanılır. Özel Eylem Türü 39 genellikle üst ürün kaldırıldığında eşzamanlı yüklemeyi kaldırmak için kullanılır. CustomAction tablosundaki kaldırma özel eyleminin kaydı Kaynak alanında ürün kodu GUID'sine ve Hedef alanında "REMOVE=ALL" bulunabilir. İki özel eylemin eylem dizisi tablosunda birbirini dışlayan koşullarla yazılması gerekir. Örneğin, ürünü yükleyen özel eylemin Koşul alanında "YÜKLÜ DEĞİl" olabilir ve özel eylem eş zamanlı yüklemeyi kaldırırsa Koşul alanında REMOVE="ALL" olabilir.
Bir paketi maliyetine göre sorgulamak için bir yöntem yoktur. Bu, eş zamanlı yüklemelerin maliyetini zorlaştırır. Eş zamanlı yüklemeyle ilişkili bileşenin klasörlerini ve en kötü durum maliyetlerini göstermek için ReserveCost tablosuna satırlar eklenmelidir.
Eşzamanlı yükleme eylemleriyle kullanılabilen tek Özel Eylem Dönüş İşleme Seçenekleri yok (+0) veya msidbCustomActionTypeContinue (+64).
Üst yüklemenin kendi paketini eşzamanlı yükleme eylemi olarak çağıramayacağını unutmayın.
Makine başına yükleme, kullanıcı başına eş zamanlı yüklemeyi çalıştırmayı denerse, yükleyicinin üst yüklemeyi varsayılan olarak kullanıcı başına olarak kaydeddiğini unutmayın. Bu, yükleyici gerçekten kullanıcı başına kaydedildiğinde makine başına uygulamayı kaldırmaya çalıştığından yükleyicinin uygulamayı yanlış kaldırmasına neden olabilir. Eşzamanlı yüklemenin durumunu üst yüklemesinin durumunu izlemeye zorlamak için, CustomAction tablosunun Hedef sütununa ALLUSERS="[ALLUSERS]" yazın. Bu durumda, üst öğe makine başına ise eş zamanlı yükleme makine başına ve üst öğe kullanıcı başına ise eş zamanlı yükleme kullanıcı başınadır.
Geliştiriciler eşzamanlı yüklemeler yazarken aşağıdaki uyarıları not etmelidir.
- Eşzamanlı yüklemeler bileşenleri paylaşamaz.
- Yönetim yüklemesi eşzamanlı yükleme de içeremez.
- Düzeltme eki uygulama ve yükseltme eşzamanlı yüklemelerle çalışmayabilir.
- Yükleyici, eş zamanlı bir yüklemenin düzgün bir şekilde maliyetine mal olmayabilir.
- Tümleşik ProgressBars eşzamanlı yüklemelerle kullanılamaz.
- Tanıtılacak kaynaklar eşzamanlı yükleme tarafından yüklenemez.
- Bir uygulamanın eş zamanlı yüklemesini gerçekleştiren bir paket, üst ürün kaldırıldığında eşzamanlı uygulamayı da kaldırmalıdır.
Bir paketin eşzamanlı yükleme olarak yüklenmesini önlemek için aşağıdaki koşullu deyimlerden birini LaunchCondition tablosuna ekleyin. Bu, paketin başka bir yükleme tarafından çalıştırılan eşzamanlı yükleme eylemi tarafından yüklenmesini önler. Bu, paketin RemoveExistingProducts eylemi tarafından kaldırılmasını engellemez. Ayrıca ParentOriginalDatabase özelliğine ve ParentProductCode özelliğine de bakın.
"Not ParentProductCode"
"Not ParentOriginalDatabase"