共用方式為


移除修補程式

從 Windows Installer 3.0 版開始,您可以建立並安裝可依序卸載的修補程式,而不需要卸載並重新安裝整個應用程式和其他修補程式。 Windows Installer 3.0 也可使用包含修補程式排序資訊的MsiPatchSequence 資料表來撰寫修補程式套件。 使用早于 Windows Installer 3.0 的 Windows Installer 版本,從應用程式移除特定修補程式的唯一方法是卸載整個修補的應用程式,然後重新安裝,而不需要重新套用任何要移除的修補程式。

是否可以卸載修補程式取決於修補程式的撰寫方式、用來安裝修補程式的 Windows Installer 版本,以及修補程式對應用程式所做的變更。 如果修補程式無法卸載,則移除修補程式的唯一方法是卸載整個應用程式並重新安裝,而不套用要移除的修補程式。

您可以使用命令列選項、指令碼介面,或從另一個應用程式呼叫 MsiRemovePatches ,卸載一或多個修補程式。 如需如何卸載修補程式的詳細資訊 ,請參閱卸載 修補程式。

MSIPATCHREMOVE屬性的值會列出要卸載的修補程式。 針對清單中的每個修補程式,安裝程式會確認修補程式可卸載。 如果使用者沒有移除修補程式的許可權,則產品修補程式未知、修補程式原則會防止移除,或修補程式標示為無法卸載,安裝程式會傳回錯誤,指出安裝交易失敗。 如需決定修補程式是否無法卸載的詳細資訊,請參閱 卸載修補程式。

一旦修補程式驗證為卸載式,安裝程式就會從修補程式應用程式順序中移除修補程式。 如需 Windows Installer 3.0 如何決定套用修補程式時要使用的順序的詳細資訊,請參閱 排序修補程式。 請注意,從序列中移除修補程式可能會導致標示為過時或被取代的修補程式變成作用中。

選取移除的所有修補程式都會列在 MsiPatchRemovalList 屬性中。 這個屬性是由安裝程式設定的私用屬性,可用於條件運算式或自訂 動作查詢。 屬性包含要移除之修補程式的修補程式程式碼 GUID 清單。 自訂動作可以藉由呼叫MsiGetPatchInfoExPatch 物件的PatchProperty屬性來判斷是否已套用、過時或取代修補程式的安裝狀態。

移除修補程式之後,應用程式的狀態會與從未安裝修補程式的狀態相同。 可能的話,安裝程式會將進程限制為受移除修補程式影響的功能子集。 安裝程式會自動將 REINSTALL 屬性設定為受影響的功能清單。 已移除修補程式新增的檔案,並覆寫修補程式修改的檔案。 檔案和登錄專案會還原至產品預期的版本減去修補程式。 修補程式新增的功能和元件會從應用程式取消註冊。 請注意,如果仍適用其他修補程式使用內容,則修補程式新增的其他內容可以保留在使用者的電腦上。

如果修補程式更新共用元件的檔案,變更會影響共用元件的所有應用程式。 再次移除修補程式時,變更會影響共用元件的所有應用程式。 這表示一個應用程式移除修補程式可以將共用元件的檔案還原至低於另一個應用程式所需的版本。 這可能會修正第一個應用程式,但導致第二個應用程式停止運作。 在此情況下,使用 重新安裝功能或應用程式中所述的方法重新安裝第二個應用程式,即可修復第二個應用程式。 這會還原已修補的檔案版本。

MsiEnumapplicationsEx

MsiGetPatchInfoEx

MSIPATCHREMOVE

MsiRemovePatches

修補程式排序

修補卸載自訂動作

可卸載的修補程式

卸載修補程式