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\QFEn.msp“ ”

[in, optional] szProductCode

此参数是要修补的产品的 ProductCode GUID。 调用 MsiApplyMultiplePatches 的用户或应用程序必须具有应用修补程序的权限。 此参数为 NULL 时,修补程序将应用于所有符合条件的产品。 如果此参数为非 NULL,则修补程序仅应用于指定的产品。

[in, optional] szPropertiesList

一个 null 终止的字符串,指定在修补产品期间使用的命令行属性设置。 如果没有命令行属性设置,请传入 NULL 指针。 空字符串是无效参数。 这些属性由所有目标产品共享。 有关详细信息,请参阅
关于命令行上的属性和设置公共属性值

注意 属性列表不应包含 PATCH 属性。 如果在命令行中设置了 PATCH 属性,则会忽略该值,并被应用修补程序覆盖。
 

返回值

MsiApplyMultiplePatches 函数返回以下值。

Value 含义
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 Run-Time要求。
目标平台 Windows
标头 msi.h
Library Msi.lib
DLL Msi.dll

另请参阅

关于属性

多包安装

Windows Installer 2.0 及更早版本中不支持

PATCH

ProductCode

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