Freigeben über


Verwenden von Symbolen zum Reduzieren der Größe binärer Patches

Wenn Sie öffentliche Symbole für die Binärdateien Ihrer Ziel- und Upgradeimages verwenden, können Sie die Größe binärer Patches um etwa die Hälfte reduzieren. Die tatsächliche Reduzierung hängt von den verwendeten Symbolen ab. Beachten Sie, dass die Verwendung von Symbolen die Patcherstellung verlangsamen kann, da die Verarbeitung der Symboldateien länger dauert.

Um die Größe eines binären Patches mithilfe von Symbolen zu verringern, müssen Sie Symbole sowohl für die Ziel- als auch für die Upgrade-Imagebinärdateien bereitstellen. Geben Sie die Symbole in der SymbolPaths-Spalte der TargetImages-Tabelle und in der SymbolPaths-Spalte der UpgradedImages-Tabelle an. Sie müssen Visual C++ verwenden, um Symbole im PDB-Dateiformat (Programmdatenbank) zu generieren. Neuere Versionen von Visual C++ stellen alle erforderlichen Informationen in der PDB-Datei bereit. Ältere Versionen von Visual C++ generieren auch das DBG-Dateiformat. In diesem Fall sollte der SymbolsPaths-Wert den Speicherort der PDB- und DBG-Dateien angeben.

Das TargetImage für einen Patch kann beispielsweise das Installationspaket sein, das mit Windows 2000 geliefert wurde und die Version 1.1.1029.0 von MSI.DLL installiert. Das UpgradedImage kann das aktualisierte Installationspaket sein, das in Windows 2000 mit Service Pack 1 (SP1) enthalten ist und die Version 1.11.1314.0 von MSI.DLL installiert. Anschließend müssten zwei PCP-Dateien (Patch Creation Properties) erstellt werden, wobei die SymbolPaths-Spalte der TargetImages- und der UpgradedImages-Tabelle einer Datei NULL (leer) ist und in die SymbolPaths-Spalte der TargetImages- und UpgradedImages-Tabelle der anderen Datei der Speicherort der Symbole für die Binärdateien eingetragen wird. In diesem Fall kann die Größe des ohne Verwendung von Symbolen generierten Patches ungefähr dreimal so groß sein wie der Patch, der mithilfe von Symbolen generiert wird.

Mit dem Hilfsprogramm Mpatch.exe kann die Generierung von binären Patches für eine einzelne Datei getestet und überprüft werden, ob die Symbole gültig sind. Das Hilfsprogramm Mpatch.exe ist in den Windows SDK-Komponenten für Windows Installer-Entwickler enthalten. Die Ausgabe von Mpatch.exe zeigt an, ob die Symbole nicht übereinstimmen.

Geben Sie beispielsweise die folgende Befehlszeile ein, um zu überprüfen, ob die Symbole gültig sind.

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

Wenn sich die Symbole nicht an der richtigen Position befinden, kann die Ausgabe von Mpatch.exe die folgende Warnung enthalten.

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