Aracılığıyla paylaş


İkili Yama Boyutunu Küçültmek için Sembolleri Kullanma

Hedef ve yükseltme görüntüsü ikili dosyaları için genel semboller kullanmak, ikili düzeltme eki boyutlarını yaklaşık yarı yarıya azaltabilir. Gerçek azaltma, kullanılan sembollere bağlıdır. Sembollerin kullanılması, sembol dosyalarının işlenmesi daha uzun sürdüğü için düzeltme eki oluşturma sürelerinin yavaş geçmesine neden olabilir.

Binary yamasının boyutunu sembolleri kullanarak küçültmek için hem hedef hem de yükseltme görüntüleri ikili dosyaları için semboller sağlamanız gerekir. TargetImages tablosunun SymbolPaths sütunundaki simgeleri belirtin ve UpgradedImages tablosunun SymbolPaths sütunundaki simgeleri belirtin. Program veritabanı (PDB) dosya biçiminde simgeler oluşturmak için Visual C++ kullanmalısınız. Visual C++'ın daha yeni sürümleri PDB dosyasındaki tüm gerekli bilgileri sağlar. Visual C++'ın eski sürümleri de hata ayıklama (DBG) dosya biçimini oluşturur. Bu durumda SymbolsPaths değeri hem PDB hem de DBG dosyalarının konumunu belirtmelidir.

Örneğin, bir düzeltme eki için TargetImage, Windows 2000 ile birlikte gelen ve MSI.DLL 1.1.1029.0 sürümünü yükleyen yükleme paketi olabilir. UpgradeImage, Windows 2000 Service Pack 1 (SP1) ile birlikte gönderilen ve MSI.DLL 1.11.1314.0 sürümünü yükleyen güncelleştirilmiş yükleme paketi olabilir. TargetImages ve UpgradeImages tablolarının SymbolPaths sütunları NULL (boş) olan bir dosya ve TargetImages ve UpgradeImages tablolarının SymbolPaths sütunları ikili dosyaların sembollerinin konumlarıyla doldurulmuş bir dosya olmak üzere iki Düzeltme Eki Oluşturma Özelliği (PCP) dosyası oluşturulmalıdır. Bu durumda, semboller kullanılmadan oluşturulan düzeltme ekinin boyutu, semboller kullanılarak oluşturulan düzeltme ekinin boyutunun yaklaşık üç katı olabilir.

Mpatch.exe yardımcı programı, tek bir dosya için ikili düzeltme eklerinin oluşturulmasını test etmek ve simgelerin geçerli olup olmadığını denetlemek için kullanılabilir. Mpatch.exe yardımcı programı, Windows Installer Developersiçin Windows SDK Bileşenleri'ne dahildir. Mpatch.exe çıkışı simgelerin eşleşmediğini gösterir.

Örneğin, simgelerin geçerli olup olmadığını denetlemek için aşağıdaki komut satırını girin.

mpatch.exe -NEWSYMPATH:d:\update -OLDSYMPATH:d:\target d:\target\example.dll d:\update\example.dll example.pat

Simgeler doğru konumda değilse, Mpatch.exe çıkışı aşağıdaki uyarıyı içerebilir.

WARNING: no debug symbols for d:\update\example.dll