MsiRemovePatchesA 函数 (msi.h)

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 Run-Time 要求。
目标平台 窗户
标头 msi.h
Msi.lib
DLL Msi.dll

另请参阅

关于属性 的

MsiApplyPatch

Multiple-Package 安装

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

ProductCode

删除修补程序

命令行 设置公共属性值

卸载修补程序