Używanie symboli w celu zmniejszenia rozmiaru poprawki binarnej
Używanie symboli publicznych dla docelowych i aktualizacyjnych plików binarnych obrazów może zmniejszyć rozmiary poprawek binarnych o około połowę. Rzeczywista redukcja zależy od użytych symboli. Należy pamiętać, że użycie symboli może spowodować wolniejsze czasy tworzenia poprawek, ponieważ przetwarzanie plików symboli trwa dłużej.
Aby zmniejszyć rozmiar poprawki binarnej przy użyciu symboli, należy podać symbole zarówno dla plików binarnych obrazu docelowego, jak i plików binarnych obrazu aktualizacji. Określ symbole w kolumnie SymbolPaths tabeli TargetImages oraz kolumnie SymbolPaths tabeli UpgradedImages. Do generowania symboli w formacie pliku bazy danych programu (PDB) należy użyć języka Visual C++. Nowsze wersje programu Visual C++ udostępniają wszystkie niezbędne informacje w pliku PDB. Starsze wersje programu Visual C++ również generują format pliku debugowania (DBG). W takim przypadku wartość SymbolsPaths powinna określać lokalizację plików PDB i DBG.
Na przykład, element TargetImage dla poprawki może być pakietem instalacyjnym dostarczanym z systemem Windows 2000, który instaluje wersję 1.1.1029.0 pliku MSI.DLL. Uaktualniony obraz może być zaktualizowanym pakietem instalacyjnym dostarczanym z systemem Windows 2000 z dodatkiem Service Pack 1 (SP1) i instalowanym w wersji 1.11.1314.0 MSI.DLL. Następnie należy utworzyć dwa pliki Właściwości tworzenia poprawek (PCP), po jednym z kolumny SymbolPaths zarówno TargetImages, jak i UpgradeImages tabel pozostawiono wartość NULL (pustą), a drugą z kolumną SymbolPaths tabel TargetImages i UpgradeImages wypełnionymi lokalizacją symboli dla plików binarnych. W takim przypadku rozmiar poprawki wygenerowanej bez użycia symboli może wynosić około trzy razy więcej niż rozmiar poprawki wygenerowanej przy użyciu symboli.
Narzędzie Mpatch.exe może służyć do testowania generowania poprawek binarnych dla pojedynczego pliku i sprawdzania, czy symbole są prawidłowe. Narzędzie Mpatch.exe jest zawarte w składnikach Windows SDK dla deweloperów Instalatora Windows. Dane wyjściowe Mpatch.exe wskazują, czy symbole nie są zgodne.
Na przykład wprowadź następujący wiersz polecenia, aby sprawdzić, czy symbole są prawidłowe.
mpatch.exe -NEWSYMPATH:d:\update -OLDSYMPATH:d:\target d:\target\example.dll d:\update\example.dll przykład.pat
Jeśli symbole nie znajdują się w prawidłowej lokalizacji, dane wyjściowe Mpatch.exe mogą zawierać następujące ostrzeżenie.
WARNING: no debug symbols for d:\update\example.dll