msi.h) (MsiRemovePatchesA 函数

MsiRemovePatches 函数从单个产品中删除一个或多个修补程序。 若要从多个产品中删除修补程序,必须为每个产品调用 MsiRemovePatches

语法

UINT MsiRemovePatchesA(
  [in]           LPCSTR      szPatchList,
  [in]           LPCSTR      szProductCode,
  [in]           INSTALLTYPE eUninstallType,
  [in, optional] LPCSTR      szPropertyList
);

参数

[in] szPatchList

以 null 结尾的字符串,表示要删除的修补程序列表。 每个修补程序都可以由修补程序的 GUID 或修补程序包的完整路径指定。 列表中的修补程序由分号分隔。

[in] szProductCode

一个以 null 结尾的字符串,它是从中删除修补程序的产品的 ProductCode (GUID) 。 此参数不能为 NULL

[in] eUninstallType

指示要执行的修补程序删除类型的值。 此参数必须 INSTALLTYPE_SINGLE_INSTANCE

含义
INSTALLTYPE_SINGLE_INSTANCE
仅针对 szProduct 指定的产品卸载修补程序。

[in, optional] szPropertyList

一个以 null 结尾的字符串,用于指定命令行属性设置。 有关详细信息,请参阅
关于命令行上的属性设置公共属性值。 此参数可以为 NULL。

返回值

MsiRemovePatches 函数返回以下值。

含义
ERROR_INVALID_PARAMETER
包含无效参数。
ERROR_PATCH_PACKAGE_OPEN_FAILED
无法打开修补程序包。
ERROR_SUCCESS
已成功删除修补程序。
ERROR_UNKNOWN_PRODUCT
szProductList 指定的产品未针对 MsiRemovePatches 的调用方按计算机或按用户安装。
ERROR_PATCH_PACKAGE_OPEN_FAILED
无法打开修补程序包。
ERROR_PATCH_PACKAGE_INVALID
修补程序包无效。
ERROR_PATCH_PACKAGE_UNSUPPORTED
此版本的 Windows Installer 服务无法处理修补程序包。
ERROR_PATCH_REMOVAL_UNSUPPORTED
修补程序包不可移动。
ERROR_UNKNOWN_PATCH
修补程序尚未应用于此产品。
ERROR_PATCH_REMOVAL_DISALLOWED
策略不允许删除修补程序。

备注

有关演示应用程序如何从可供用户使用的所有产品中移除补丁的示例,请参阅卸载补丁

注意

msi.h 标头将 MsiRemovePatches 定义为别名,该别名根据 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

另请参阅

关于属性

MsiApplyPatch

多包安装

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

ProductCode

移除修补程序

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

卸载修补程序