Aracılığıyla paylaş


Oyun Geliştiricileri için Windows Installer

Windows Installer'ın son kullanıcı makinelerine oyun yüklemek için nasıl kullanılabileceğini gösterir. Windows Installer, özelleştirilmiş bir kullanıcı arabirimi ve düzeltme eki uygulama için tam destek sunar.

Microsoft Windows Installer, Windows tabanlı bilgisayarlara yazılım yüklemek için tercih edilen API'dir. Windows Installer'ın özelliklerinin çoğu kurumsal bir ortamda iş uygulamalarının dağıtımını destekleyecek şekilde tasarlanmış olsa da, Windows Installer son kullanıcı makinelerine oyun yüklemek için de tamamen uygundur. Oyun yüklemesi için Windows Installer kullanmanın başlıca avantajları şunlardır:

  • Güvenilir kaldırma
  • İsteğe bağlı olarak içerik yükleme olanağı
  • Tamamen özel kullanıcı arabirimi desteği
  • Verimli düzeltme eki uygulama

Bu makalede, özellikle oyun geliştiricilerine yönelik Windows Installer'a genel bir bakış sağlanır. Bu makalede bahsedilen özellikler ve API'ler hakkında ayrıntılı belgeler için lütfen Windows Platformu SDK'sına bakın.

Genel bakış

Tüm Windows Installer tabanlı kurulumlar, uygulamanın nasıl yükleneceğini açıklamak için MSI dosyası olarak adlandırılan bir yükleme veritabanı dosyası kullanır. MSI dosyası hangi dosyaların, kayıt defteri anahtarlarının, masaüstü kısayollarının, dosya ilişkilendirmelerinin ve diğer uygulama öğelerinin yükleneceği hakkında bilgi içerir. Yüklenecek gerçek dosyalar MSI dosyasının içinde sıkıştırılabilir, ayrı "dolap dosyaları" halinde paketlenebilir ve sıkıştırılabilir veya ayrı ayrı sıkıştırılmamış dosyalar olarak yükleme medyasının başka bir yerinde depolanabilir. MSI dosyası, MSI dosyasının yerel olarak izin vermediği eylemlere izin vermek için dışarıdan uygulanan özel eylemlere de başvurabilir.

MSI dosyası isteğe bağlı olarak kullanıcıya yükleme işleminde yol gösterecek bir kullanıcı arabirimi içerebilir. Bu kullanıcı arabirimi çoğu uygulama için yeterlidir. Ancak, normal bir Windows uygulamasının genel görünümüne sahiptir ve birçok oyun geliştiricisi, daha tutarlı bir son kullanıcı deneyimi sağlamak için kurulum uygulamalarının oyunun genel görünümünü korumasını tercih eder. Bu tamamen özel kullanıcı arabirimi senaryosunu desteklemek için kurulum uygulaması Windows Installer'ın yerleşik kullanıcı arabirimini kapatabilir ve tüm kullanıcı arabirimini işleyebilir. Windows Installer API'sinde, özel kurulum kullanıcı arabiriminin yüklemenin ilerleme durumu ve disk değişikliği istekleri gibi önemli olaylar hakkında bildirim alınmasına olanak sağlayan bir geri çağırma mekanizması kullanıma sunulur.

Windows Installer, kurulum oluşturmaya yönelik uçtan uca bir çözüm değildir. Yalnızca bir kurulum programı tarafından dosyaların, kayıt defteri anahtarlarının, masaüstü kısayollarının ve uygulamanın diğer öğelerinin gerçek yüklemesini yapmak için kullanılabilecek bir API'dir. Tüm önemli ticari kurulum araçlarının (örneğin, InstallShield, WISE ve Microsoft Visual Studio) son sürümleri Windows Installer'ı destekler. Bu araçlar, bir oyunun kurulumunu oluşturmak için kullanışlı kullanıcı arabirimleri sağlar, ancak gerçek yüklemenin büyük bir kısmını yapmak için Windows Installer API'sine güvenir. Bu araçlar yalnızca kurulum paketini içeren bir MSI veritabanı oluşturmak için de kullanılabilir. Bu veritabanı daha sonra özel yazılmış bir kurulum kullanıcı arabiriminden yüklenebilir. Üçüncü taraf araçlara alternatif olarak, Windows Installer API'si MSI veritabanını program aracılığıyla oluşturmak ve işlemek için gerekli tüm işlevleri sağlar ve Windows Platform SDK'sı Orca adlı çıplak bir MSI veritabanı düzenleme aracı içerir.

Önemli Windows Installer Kavramları

Windows Installer bileşenleri ve özellikleri aşağıdadır.

Bileşen

Bir uygulama, GUID bileşen kimliğiyle tanımlanan bir veya daha fazla bileşenden oluşur. Bileşen atomik bir birimdir; tamamen yüklü veya hiç yüklü değil. Bileşen tek bir dosyadan, birden çok dosyadan, kayıt defteri anahtarlarından, masaüstü kısayollarından veya bunların bir bileşiminden oluşabilir. Bir bileşendeki kaynaklar (dosyalar vb.) bu bileşen için benzersiz olmalıdır; iki bileşen aynı kaynağı içeremez. Bir bileşen hiçbir zaman açıkça yüklenmez; yalnızca bir özelliğin parçası olarak yüklenir (aşağıdakilere bakın).

Özellik

Özellik, GUID özellik kimliğiyle tanımlanan bir bileşen grubudur. Bileşenlerden farklı olarak, birden çok özellik aynı bileşeni içerebilir. Birden çok özellik arasında paylaşılan bir bileşen, bu özelliklerden herhangi biri yüklüyse yüklenir ve yalnızca bileşene başvuran tüm özellikler kaldırıldığında kaldırılır. Bir özelliğin yüklenmesi, bir ürünün yüklenmesinin bir parçası olarak otomatik olarak veya MsiConfigureFeature API'sini kullanarak el ile yapılabilir.

Birkaç oyun bağımsız olarak yüklenebilen birden çok "özelliğe" sahip olsa da, bir özelliğin Windows Installer kavramı hala yararlıdır. Bir Windows Installer özelliği birlikte yüklenebilen bir bileşen koleksiyonundan başka bir şey olmadığından, oyunlar özellikleri kullanarak oyunun belirli bir aşaması için gereken tüm içeriği gruplandırabilir. Örneğin, düzey odaklı bir oyun, düzey başına bir özellik tanımlayabilir ve bu düzey için gereken tüm içeriklerden oluşabilir. Bu, oyunun ilk yükleme sırasında tüm düzeylerin içeriğinin tamamını yüklemek yerine, oyunun kendi içinden içeriği bir kerede bir düzey yüklemesine izin verir.

Yükleme Durumları

Her bileşenin veya özelliğin, bileşenin veya özelliğin kullanılabilir olup olmadığını ve kullanılabiliyorsa bileşen veya özelliğin dosyalarının nereye yükleneceğini belirleyen ilişkili bir yükleme durumu vardır. Bir özelliğin olası yükleme durumları şunlardır:

Yok

Özellik yüklü değildir ve bu nedenle erişilemez.

yerel

Özellik kullanılabilir ve yerel sabit sürücüden çalıştırılacak şekilde yüklenir.

Kaynağı

Özellik kullanılabilir ve özgün kaynak medyadan (genellikle BIR CD veya DVD) çalıştırılacak şekilde yüklenir.

Tanıtıldı

Özellik yüklenmez, ancak MsiConfigureFeature API kullanılarak isteğe bağlı olarak yüklenebilir. Özellik gerçekten yüklendiğinde, Yerel veya Kaynak durumuna yüklenebilir.

Bir bileşen , "Tanıtıldı" dışında yukarıdaki durumlardan herhangi birine sahip olabilir. Bir bileşen tanıtılan bir özelliğin parçasıysa, özellik yüklenene kadar bileşen "Yok" olarak görünür.

İsteğe Bağlı Yükleme

Windows Installer, bir uygulamanın özellikleri Tanıtıldı olarak işaretlemesine olanak tanır; bu özellik henüz yüklenmemiş ancak gerekirse çalışma zamanında yüklenebilir. Çalışma zamanında özellik yükleme işlemi "İsteğe Bağlı Olarak Yükle" olarak bilinir. Oyunlar, çalışma zamanında ihtiyaç duyulana kadar oyun içeriğinin yüklenmesini erteleyerek ilk oyun kurulumu için gereken süreyi önemli ölçüde azaltmak için İsteğe Bağlı Yükleme özelliğini kullanabilir. çalışma zamanında içerik yüklemek için gereken gecikme genellikle isteğe bağlı yüklemeyi arka plan iş parçacığında yaparak kısmen veya tamamen gizlenebilir, ancak kullanıcı başka bir şekilde oyunla meşgul olur.

Özel Kullanıcı Arabirimi

Windows Installer, kullanıcıya uygulamanın yüklenmesinde yol gösteren varsayılan bir kullanıcı arabirimi sağlasa da, bu arabirim standart bir Windows uygulamasına benzer. Birçok oyun geliştiricisi, kullanıcıya oyunun ambiyansını tatmak için yükleme kullanıcı arabiriminin oyunun kendisiyle aynı görünüme ve hisye sahip olmasını tercih eder. Bunu desteklemek için Windows Installer, yerleşik kullanıcı arabiriminin tamamen devre dışı bırakılmasına olanak tanıyarak geliştiricinin tamamen özel bir kullanıcı arabirimi sağlamasına olanak tanır.

Özel kurulum programı, kullanıcı arabirimi düzeyini INSTALLUILEVEL_NONE olarak ayarlamak için önce MsiSetInternalUI API'sini kullanarak Windows Installer'ın yerleşik kullanıcı arabirimini devre dışı bırakır. Ardından MsiSetExternalUI API'sini çağırarak yükleme işlemi sırasında çağrılacak bir geri çağırma işlevi belirterek kurulum programına yükleme sırasındaki önemli olayları bildirir.

Gerçek yükleme işlemi daha sonra MsiInstallProduct API çağrılarak başlatılır. Bu API, çağıranın adlandırılmış özellikler için değer belirtmesine olanak tanıyan bir parametre dizesi kabul eder. Bu özellikler, uygulamanın nasıl yükleneceğini özelleştirmek için yükleme veritabanının içinde kullanılabilir. Bu özellikler şunları belirtmek için kullanılabilir:

  • Uygulamanın yükleneceği dizin
  • Hangi özelliklerin yerel olarak yükleneceği ve CD/DVD'den çalıştırılacak şekilde yüklenmesi gereken özellikler (örneğin, en az yükleme ile tam yükleme arasında seçim yapmaya olanak tanımak için)
  • Uygulamanın makinenin tüm kullanıcıları için mi yoksa yalnızca geçerli kullanıcı için mi yüklenmesi gerektiği

Yükleme sırasında kurulum programı, ilerleme göstergesi kullanıcı arabiriminin ne zaman güncelleştirileceğini, kullanıcıdan bir sonraki CD'yi ne zaman eklemesinin isteneceğini veya yükleme işlemindeki bir hatanın kullanıcıya ne zaman bildirileceğini belirlemek için geri çağırma işlevine gönderilen bildirim iletilerini kullanır.

Yama

Windows Installer, bir düzeltme eki dosyası uygulanarak yüklü uygulamaların düzeltme eki uygulanmasına izin verir. Düzeltme eki dosyası, düzeltme eki tarafından eklenecek yeni dosyaları, düzeltme eki tarafından değiştirilen dosyaları ve yükleme veritabanında yapılacak değişikliklerin listesini içerir. Alandan tasarruf etmek için, düzeltme eki tarafından değiştirilen bir dosyanın tüm içeriğini depolamak yerine, düzeltme eki dosyası aslında yalnızca dosyanın özgün sürümüyle dosyanın yeni sürümü arasındaki farkları içerir.

Bir düzeltme eki oluşturmak için, düzeltme ekinin yükseltilmesi istediğiniz uygulama sürümlerinin her biri için kurulum görüntüsüne ve uygulamanın yeni, yükseltilmiş sürümünün kurulum görüntüsüne ihtiyacınız vardır. Kurulum görüntüsü, MSI veritabanından ve uygulama için tüm gerçek veri dosyalarından oluşur. Uygulamanın yeni bir sürümü için kurulum görüntüsü oluşturmanın en iyi yolu, kurulum görüntüsünü uygulamanın önceki sürümünden kopyalamak ve ardından bu kopyayı düzeltme eki uygulanmış sürüme güncelleştirmek için gerekli değişiklikleri yapmaktır.

Gerekli tüm kurulum görüntülerine sahip olduktan sonra, Platform SDK'sının bir parçası olarak kullanılabilen bir düzeltme eki oluşturma aracı olan Msimsp.exekullanarak düzeltme eklerini oluşturabilirsiniz. Araç, kurulum görüntülerinin her birinin konumlarını ister ve ardından birbirini izleyen sürümler arasındaki farkları verimli bir şekilde nasıl temsil edeceğinizi belirler. Aracın çıktısı son düzeltme eki dosyasıdır (MSP uzantısı tarafından tanımlanır). Düzeltme ekini program aracılığıyla yüklemek için MsiApplyPatch API'sini çağırın. Kullanıcı, Explorer'da MSP dosyasına çift tıklayarak düzeltme ekini el ile de yükleyebilir.

Diğer Kaynaklar