Utilisation de symboles pour réduire la taille des correctifs binaires

L’utilisation de symboles publics pour votre cible et la mise à niveau des fichiers binaires d’images peut réduire la taille des correctifs binaires d’environ la moitié. La réduction réelle dépend des symboles utilisés. Notez que l’utilisation de symboles peut ralentir les temps de création des correctifs, car le traitement des fichiers de symboles prend plus de temps.

Pour réduire la taille d’un correctif binaire à l’aide de symboles, vous devez fournir des symboles pour les fichiers binaires d’image cible et de mise à niveau. Spécifiez les symboles dans la colonne SymbolPaths de la table TargetImages et la colonne SymbolPaths de la table UpgradedImages . Vous devez utiliser Visual C++ pour générer des symboles au format de fichier PDB (Program Database). Les versions plus récentes de Visual C++ fournissent toutes les informations nécessaires dans le fichier PDB. Les versions antérieures de Visual C++ génèrent également le format de fichier de débogage (DBG). Dans ce cas, la valeur SymbolsPaths doit spécifier l’emplacement des fichiers PDB et DBG.

Par exemple, TargetImage pour un correctif peut être le package d’installation fourni avec Windows 2000 et qui installe la version 1.1.1029.0 de MSI.DLL. UpgradedImage peut être le package d’installation mis à jour fourni avec Windows 2000 avec Service Pack 1 (SP1) et qui installe la version 1.11.1314.0 de MSI.DLL. Deux fichiers PCP (propriétés de création de correctif) doivent ensuite être créés, l’un avec la colonne SymbolPaths des tables TargetImages et UpgradedImages à gauche NULL (vide) et l’autre avec la colonne SymbolPaths des tables TargetImages et UpgradedImages remplie avec l’emplacement des symboles pour les fichiers binaires. Dans ce cas, la taille du correctif généré sans utiliser de symboles peut être environ trois fois supérieure à celle du correctif généré à l’aide de symboles.

L’utilitaire Mpatch.exe peut être utilisé pour tester la génération de correctifs binaires pour un fichier unique et vérifier si les symboles sont valides ou non. L’utilitaire Mpatch.exe est inclus dans les composants du Kit de développement logiciel (SDK) Windows pour les développeurs Windows Installer. La sortie de Mpatch.exe indique si les symboles ne correspondent pas.

Par exemple, entrez la ligne de commande suivante pour vérifier si les symboles sont valides.

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

Si les symboles ne se trouvent pas à l’emplacement correct, la sortie de Mpatch.exe peut inclure l’avertissement suivant.

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