開發人員會藉由產生修補程式建立檔案並使用 Msimsp.exe 在 Patchwiz.dll中呼叫 UiCreatePatchPackageEx 函式來建立修補程式套件。 Windows Installer SDK 中提供 Msimsp.exe 和 Patchwiz.dll。 如需詳細資訊,請參閱 小型更新修補範例。
由於將修補程式套用至 Windows Installer 套件會導致使用新的 .msi 檔案安裝原始來源,因此新的 .msi 檔案必須與原始來源的配置保持相容。
當您撰寫修補程式套件時,您必須使用未壓縮的安裝映像來建立修補程式,例如,從 CD-ROM 建立系統管理映像或未壓縮的安裝映像。 您也必須遵守下列限制:
請勿將檔案從一個資料夾移到另一個資料夾。
請勿將檔案從一個櫃子移到另一個櫃子。
請勿變更文件櫃中檔案的順序。
請勿變更現有檔案的序號。 序號是 File Table的 Sequence 欄位中指定的值。
修補程式新增的任何新檔案都必須放在現有檔案序列的結尾。 升級映像中任何新檔案的序號必須大於目標映像中現有檔案的最大序號。
請勿在原始和新的 .msi 檔案版本之間變更 檔案數據表中的主鍵。
注意
檔案在目標映像和更新映像的 檔案表 中必須具有相同的鍵值。 這兩個數據表之 [檔案] 資料行中的字串值必須相同,包括大小寫。
請勿撰寫具有 文件表 僅大小寫不同的索引鍵的套件,避免以下列表範例。
檔案 元件_ 檔名 readme.txt Comp1 readme.txt ReadMe.txt Comp2 readme.txt 當 Comp1 和 Comp2 安裝在不同的目錄時,Windows Installer 可以允許上一個數據表範例,但您無法使用 Msimsp.exe 或 Patchwiz.dll 來產生套件的修補程式。 Msimsp.exe 和 Patchwiz.dll 呼叫 Makecab.exe,這不區分大小寫且失敗。
在設定中使用合併模組時,請確定檔案序號和版面配置遵守上述指導方針。