MsiApplyMultiplePatchesA 函式 (msi.h)

MsiApplyMultiplePatches函式會將一或多個修補程式套用至有資格接收修補程式的產品。 MsiApplyMultiplePatches函式會以分號分隔的修補程式清單設定PATCH屬性,並叫用目標產品的修補。 您可以使用屬性清單來設定其他屬性。

語法

UINT MsiApplyMultiplePatchesA(
  [in]           LPCSTR szPatchPackages,
  [in, optional] LPCSTR szProductCode,
  [in, optional] LPCSTR szPropertiesList
);

參數

[in] szPatchPackages

以分號分隔的路徑清單,以將檔案修補為單一字串。 例如:「」c:\sus\download\cache\Office\sp1.msp;c:\sus\download\cache\Office\QFE1.msp;c:\sus\download\cache\Office\FNEn.msp「 」

[in, optional] szProductCode

此參數是要修補之產品的 ProductCode GUID。 呼叫 MsiApplyMultiplePatches 的使用者或應用程式必須具有套用修補程式的許可權。 當此參數為 Null時,修補程式會套用至所有合格產品。 當此參數為非Null時,修補程式只會套用至指定的產品。

[in, optional] szPropertiesList

以 Null 終止的字串,指定修補產品期間所使用的命令列屬性設定。 如果沒有命令列屬性設定,請傳入 Null 指標。 空字串是不正確參數。 這些屬性是由所有目標產品共用。 如需相關資訊,請參閱
關於屬性在命令列上設定公用屬性值

注意 屬性清單不應包含 PATCH 屬性。 如果在命令列中設定 PATCH 屬性,則會忽略值,並使用所套用的修補程式覆寫。
 

傳回值

MsiApplyMultiplePatches 函式會傳回下列值。

意義
ERROR_INVALID_PARAMETER
傳入的某些引數不正確或衝突。
ERROR_SUCCESS
函式已完成,且所有產品都已成功修補。 只有在符合修補程式的所有產品都成功修補時,才會傳回ERROR_SUCCESS。 如果沒有任何新的修補程式適用, MsiApplyMultiplePatches 會傳回 ERROR_SUCCESS ,且產品狀態保持不變。
ERROR_SUCCESS_REBOOT_INITIATED
最後一筆交易起始的重新開機終止了 對 MsiApplyMultiplePatches 的呼叫。 所有目標產品可能尚未修補。
ERROR_SUCCESS_REBOOT_REQUIRED
最後一筆交易所需的重新開機終止了 對 MsiApplyMultiplePatches 的呼叫。 所有目標產品可能尚未修補。
ERROR_PATCH_PACKAGE_OPEN_FAILED
無法開啟其中一個修補程式套件。
ERROR_PATCH_PACKAGE_INVALID
其中一個修補程式套件提供不是有效的套件。
ERROR_PATCH_PACKAGE_UNSUPPORTED
不支援其中一個修補程式套件。
Winerror.h 中的任何錯誤
表示可能的部分完成或一或多個交易失敗。

備註

注意

msi.h 標頭會根據 UNICODE 預處理器常數的定義,將 MsiApplyMultiplePatches 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

需求

   
最低支援的用戶端 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 如需 Windows Installer 版本所需的最低 Windows Service Pack 相關資訊,請參閱 Windows Installer Run-Time 需求。
目標平台 Windows
標頭 msi.h
程式庫 Msi.lib
Dll Msi.dll

另請參閱

關於屬性

多套件安裝

Windows Installer 2.0 和更早版本中不支援

PATCH

ProductCode

在命令列上設定公用屬性值