Uso dei simboli per ridurre le dimensioni delle patch binarie

L'uso di simboli pubblici per i file binari delle immagini di destinazione e di aggiornamento può ridurre le dimensioni delle patch binarie di circa una metà. La riduzione effettiva dipende dai simboli utilizzati. Si noti che l'uso dei simboli può comportare tempi di creazione delle patch più lenti perché l'elaborazione dei file di simboli richiede più tempo.

Per ridurre le dimensioni di una patch binaria usando i simboli, è necessario fornire simboli sia per i file binari di destinazione che per i file binari di immagine di aggiornamento. Specificare i simboli nella colonna SymbolPaths della tabella TargetImages e la colonna SymbolPaths della tabella UpgradedImages . È necessario usare Visual C++ per generare simboli nel formato di file del database di programma (PDB). Le versioni più recenti di Visual C++ forniscono tutte le informazioni necessarie nel file PDB. Le versioni precedenti di Visual C++ generano anche il formato di file di debug (DBG). In questo caso, il valore SymbolsPaths deve specificare il percorso dei file PDB e DBG.

Ad esempio, TargetImage per una patch potrebbe essere il pacchetto di installazione fornito con Windows 2000 e che installa la versione 1.1.1029.0 di MSI.DLL. UpgradedImage potrebbe essere il pacchetto di installazione aggiornato fornito con Windows 2000 con Service Pack 1 (SP1) e che installa la versione 1.11.1314.0 di MSI.DLL. Due file PCP (Patch Creation Properties) devono quindi essere creati, uno con la colonna SymbolPaths delle tabelle TargetImages e UpgradedImages ha lasciato NULL (vuoto) e l'altro con la colonna SymbolPaths delle tabelle TargetImages e UpgradedImages popolate con il percorso dei simboli per i file binari. In questo caso, le dimensioni della patch generata senza usare i simboli possono essere circa tre volte la dimensione della patch generata usando i simboli.

L'utilità Mpatch.exe può essere usata per testare la generazione di patch binarie per un singolo file e verificare se i simboli sono validi o meno. L'utilità Mpatch.exe è inclusa nei componenti di Windows SDK per gli sviluppatori di Windows Installer. L'output di Mpatch.exe indicherà se i simboli non corrispondono.

Ad esempio, immettere la riga di comando seguente per verificare se i simboli sono validi o meno.

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

Se i simboli non si trovano nella posizione corretta, l'output di Mpatch.exe può includere l'avviso seguente.

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