Dela via


Använda symboler för att minska storleken på binära patchar

Genom att använda offentliga symboler för dina målen och uppgradera bildbinärer kan storleken på binära patchar minskas med ungefär hälften. Den faktiska minskningen beror på de symboler som används. Observera att användning av symboler kan leda till långsammare skapandetider för korrigeringar eftersom det tar längre tid att bearbeta symbolfilerna.

Om du vill minska storleken på en binär korrigering med hjälp av symboler måste du ange symboler för både mål- och uppgraderingsbildens binärfiler. Ange symbolerna i kolumnen SymbolPaths i tabellen TargetImages och kolumnen SymbolPaths i tabellen UpgradedImages. Du måste använda Visual C++ för att generera symboler i programdatabasens (PDB) filformat. Nyare versioner av Visual C++ innehåller all nödvändig information i PDB-filen. Äldre versioner av Visual C++ genererar också filformatet för felsökning (DBG). I det här fallet bör värdet SymbolsPaths ange platsen för både PDB- och DBG-filerna.

TargetImage för en korrigering kan till exempel vara installationspaketet som levererades med Windows 2000 och som installerar 1.1.1029.0-versionen av MSI.DLL. UpgradedImage kan vara det uppdaterade installationspaketet som levererades med Windows 2000 med Service Pack 1 (SP1) och som installerar 1.11.1314.0-versionen av MSI.DLL. Två PCP-filer (Patch Creation Properties) måste sedan skapas, en där kolumnen SymbolPaths i både TargetImages och UpgradedImages-tabellerna lämnas NULL (tom) och en annan där kolumnen SymbolPaths i både TargetImages- och UpgradedImages-tabellerna är ifylld med platsen för symbolerna till de binära filerna. I det här fallet kan storleken på korrigeringen som genereras utan att använda symboler vara ungefär tre gånger så stor som korrigeringen som genereras med hjälp av symboler.

Verktyget Mpatch.exe kan användas för att testa genereringen av binära korrigeringar för en enda fil och för att kontrollera om symbolerna är giltiga eller inte. Verktyget Mpatch.exe ingår i Windows SDK-komponenter för Windows Installer Developers. Utdata från Mpatch.exe anger om symbolerna inte matchar.

Ange till exempel följande kommandorad för att kontrollera om symbolerna är giltiga eller inte.

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

Om symbolerna inte är på rätt plats kan utdata från Mpatch.exe innehålla följande varning.

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