MsiCreateTransformSummaryInfoA 函数 (msiquery.h)

MsiCreateTransformSummaryInfo 函数创建现有转换的摘要信息,以包含验证和错误条件。 执行此函数将设置错误记录,可以使用 MsiGetLastErrorRecord 访问该记录。

语法

UINT MsiCreateTransformSummaryInfoA(
  [in] MSIHANDLE hDatabase,
  [in] MSIHANDLE hDatabaseReference,
  [in] LPCSTR    szTransformFile,
  [in] int       iErrorConditions,
  [in] int       iValidation
);

参数

[in] hDatabase

包含新数据库摘要信息的数据库的句柄。

[in] hDatabaseReference

包含原始摘要信息的数据库的句柄。

[in] szTransformFile

要向其添加摘要信息的转换的名称。

[in] iErrorConditions

应用转换时应取消的错误条件。 使用以下一个或多个值。

添加状态 含义
0x00000000
以下条件均未满足。
MSITRANSFORM_ERROR_ADDEXISTINGROW
0x00000001
添加存在的行。
MSITRANSFORM_ERROR_DELMISSINGROW
0x00000002
删除不存在的行。
MSITRANSFORM_ERROR_ADDEXISTINGTABLE
0x00000004
添加存在的表。
MSITRANSFORM_ERROR_DELMISSINGTABLE
0x00000008
删除不存在的表。
MSITRANSFORM_ERROR_UPDATEMISSINGROW
0x00000010
更新不存在的行。
MSITRANSFORM_ERROR_CHANGECODEPAGE
0x00000020
转换和数据库代码页不匹配,并且其代码页是中性的。

[in] iValidation

指定要验证的属性,以验证转换是否可应用于数据库。 此参数可使用以下一个或多个值。

验证标志 含义
0x00000000
不要验证属性。
MSITRANSFORM_VALIDATE_LANGUAGE
0x00000001
默认语言必须与基本数据库匹配。
MSITRANSFORM_VALIDATE_PRODUCT
0x00000002
产品必须与基本数据库匹配。
 

验证产品版本标志。

验证标志 含义
MSITRANSFORM_VALIDATE_MAJORVERSION
0x00000008
仅检查主要版本。
MSITRANSFORM_VALIDATE_MINORVERSION
0x00000010
仅检查主要版本和次要版本。
MSITRANSFORM_VALIDATE_UPDATEVERSION
0x00000020
检查主要版本、次要版本和更新版本。
 

产品版本关系标志。 在下表中,已安装的版本是正在转换的包的版本,基本版本是用于创建转换的包的版本。

验证标志 含义
MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION
0x00000040
已安装的基版本 < 。
MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION
0x00000080
已安装的版本 <= 基本版本。
MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION
0x00000100
已安装的版本 = 基本版本。
MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION
0x00000200
已安装的版本 >= 基本版本。
MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION
0x00000400
已安装的基版本 > 。
 

升级代码验证标志。

验证标志 含义
MSITRANSFORM_VALIDATE_UPGRADECODE
0x00000800
UpgradeCode 必须与基本数据库匹配。

返回值

此函数返回 UINT。

注解

必须在基本数据库和引用数据库的属性表中定义 ProductCode 属性和 ProductVersion 属性。 如果使用MSITRANSFORM_VALIDATE_UPGRADECODE,还必须在两个数据库中定义 UpgradeCode 属性。 如果不满足这些条件, MsiCreateTransformSummaryInfo 将返回ERROR_INSTALL_PACKAGE_INVALID。

  • 不要对文件名或路径使用分号,因为它用作转换、源和修补程序的列表分隔符。
  • 无法从自定义操作调用此函数。 从自定义操作调用此函数会导致函数失败。

注意

msiquery.h 标头将 MsiCreateTransformSummaryInfo 定义为别名,该别名根据 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 Server 2003 或 Windows XP 上的 Windows Installer
目标平台 Windows
标头 msiquery.h
Library Msi.lib
DLL Msi.dll

另请参阅

数据库转换

摘要信息流属性集