Yanıtlar:
Eşzamanlı kurulumlar gerçekleştiğinde, bazı dosyaları paylaştıklarını varsayarak, doğruluğu garanti etmek çok karmaşık olacaktır. Bunun için bazı işlemlerin yapılması gerekir.
Bu kavramlar işlemsel veritabanlarından bilinir - ancak konu önemsiz değildir ve genellikle dosya sistemlerinde tam bir işlem altyapısı bulamazsınız (günlük dosya sistemleri bunun bir parçası olsa da). Bir sorun, birden fazla kilidin bir kilitlenmeye yol açabileceğidir - o zaman kilitlenme algılamasına (veya her iki yükleyicinin sonsuza kadar asılı kalacağına) ve bunu tedavi etmenin bir yoluna ihtiyacınız vardır. Kilitlenmelerden kaçınılabilir (örneğin, dosyaları her zaman aynı sırada kilitleyerek), ancak başka sorunlar da vardır:
Gerekli tüm dosyaları önde kilitlerseniz, sahip olduklarınızı etkili bir şekilde elde edersiniz: Bir yükleyici diğeri bitene kadar beklemelidir. Gerekli tüm dosyaları önde kilitlemezseniz ve devam ederseniz, "işlemin" başarısız olma riskiyle karşı karşıya kalırsınız. Bu, montajcılardan birinin yeniden başlatılması gerektiği anlamına gelir.
Daha sonra, işlem yalıtım düzeylerini düşünmek zorunda kalabilirsiniz - tam olarak doğru olmak için, işlemlerinizin "serileştirilebilir" olması gerekir - ancak bu birçok veritabanında bile kolay değildir.
Tam izolasyondan kaçınan problemlerle başa çıkmak için alternatif stratejiler bile olabilir, ancak doğruluklarını kanıtlamak genellikle daha zor olurdu.
Eşzamanlı kurulumda çok daha zorlayıcı kurulum sonrası problemlerimiz olacağına inanıyorum - özellikle de bir işletim sistemi satıcısının (veya dağıtımının)% 100 temiz olmasını sağlamak için tüm sorunlardan geçeceğini düşünüyorum. Bu yüzden işletim sistemi tarafından teklif edilmiş olsa bile kullanmamayı tercih ederim.
Not
Ama belki de gerçekten istediğiniz şey "aynı anda" kurulumunu yapmak değildir. Belki de birbiri ardına yürütülen kurulumları sıralayabilirseniz (ideal olarak aralarında herhangi bir soru sormadan) yeterli olacaktır. Ve bu gerçekten bir şey, diğer bazı işletim sistemleri (dağıtımlar) çok daha iyi idare ediyor.
Bu, aynı dosyaları / klasörleri / kayıt defteri anahtarlarını / vb. Manipüle eden iki yüklemeye sahip olmaktan kaçınmak için tasarım gereğidir; muhtemelen farklı şekillerde yapılabilirdi, ancak Microsoft bu seçimi yaptı.
Bir toplu iş dosyası kullanarak birbiri ardına hızlı sırayla yüklemek için birkaç MSI dosyasını tekmeleyebilirsiniz. İkisi aynı anda diske yazdıkları için iki MSI dosyasını aynı anda çalıştıramazsınız.
Bunun nedeni, MSI kurulumunun bir kısmının "işlem" olarak çalıştırılmasıdır - işlem listesindeki eylemlerin hatasız tamamlanıp tamamlanmadığına bağlı olarak işlenen veya geri alınan bir değişiklik dizisi. Tümünün hatasız tamamlanması gerekir ve ardından işlem yapılır, aksi takdirde tüm değişikliklerin tamamen geri alınması gerçekleşir. Buna göre, herhangi bir zamanda sadece bu tür bir işlem aktif olabilir.
Teknik MSI düzeyinde, yalnızca InstallExecuteSequence içindeki InstallInitialize ve InstallFinalize standart eylemleri arasındaki eylemler bir işlem olarak çalıştırılır. Bu eylemlerin dışında hiçbir sistem değişikliğinin gerçekleşmesi beklenmez, ancak bazen MSI dosyaları hatalı olarak diğer dizilerde değişiklik yapacak şekilde tasarlanmıştır.