MsiApplyMultiplePatchesA 函数 (msi.h)

MsiApplyMultiplePatches 函数将一个或多个修补程序应用于有资格接收修补程序的产品。 MsiApplyMultiplePatches 函数使用以分号分隔的修补程序列表设置 PATCH 属性,并调用目标产品的修补。 可以使用属性列表设置其他属性。

语法

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

parameters

[in] szPatchPackages

以分号分隔的路径列表,用于将文件修补为单个字符串。 例如:“c:\sus\download\cache\Office\sp1.msp;c:\sus\download\cache\Office\QFE1.msp;c:\sus\download\cache\Office\QFEn.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 标头将 MsiApplyMultiplePatches 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 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 运行时要求。
目标平台 Windows
标头 msi.h
Library Msi.lib
DLL Msi.dll

另请参阅

关于属性

多包安装

在 Windows Installer 2.0 及更低版本中不受支持

PATCH

ProductCode

在命令行上设置公共属性值