共用方式為


使用符號減少二進位補丁大小

針對目標使用公用符號並升級映像二進位檔,可減少大約一半的二進位修補程式大小。 實際縮減取決於所使用的符號。 請注意,使用符號可能會導致修補程式建立時間變慢,因為處理符號檔需要較長的時間。

若要減少使用符號的二進位修補程式大小,您必須同時提供目標和升級映像二進位檔的符號。 在 TargetImages 數據表的 SymbolPath s 數據行和 UpgradedImages 數據表的 SymbolPaths 數據行中指定符號。 您必須使用 Visual C++,以程式資料庫 (PDB) 檔案格式產生符號。 較新版本的 Visual C++在 PDB 檔案中提供所有必要的資訊。 舊版的 Visual C++也會產生偵錯 (DBG) 檔案格式。 在此情況下,SymbolsPaths 值應該同時指定 PDB 和 DBG 檔案的位置。

例如,修補程式的 TargetImage 可能是隨附於 Windows 2000 的安裝套件,而且會安裝 1.1.1029.0 版的 MSI.DLL。 UpgradedImage 可能是 Windows 2000 Service Pack 1 (SP1) 隨附的更新安裝套件,且會安裝 1.11.1314.0 版的 MSI.DLL。 接著必須建立兩個修補程式建立屬性(PCP)檔案,其中一個的 TargetImagesUpgradedImages 資料表的 SymbolPaths 資料行皆保持為 NULL(空白);另一個檔案則須在 TargetImages 和 UpgradedImages 資料表中填入二進位檔符號的位置於 SymbolPaths 資料行中。 在此情況下,在沒有使用符號的情況下產生的修補程式大小大約是使用符號所產生的修補程式大小的三倍。

Mpatch.exe 公用程式可用來測試單一檔案的二進位修補程序產生,以及檢查符號是否有效。 Mpatch.exe 公用程式包含在 Windows Installer 開發人員 Windows SDK 元件中。 Mpatch.exe 的輸出會指出符號是否不相符。

例如,輸入下列命令行來檢查符號是否有效。

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

如果符號不在正確的位置,Mpatch.exe 的輸出可能包含下列警告。

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