文档
-
MsiFormatRecordA 函数 (msiquery.h) - Win32 apps
MsiFormatRecord 函数使用格式字符串设置记录字段数据和属性的格式。 (ANSI)
ICE30 验证安装包含同一文件的组件时永远不会在同一目录中多次安装该文件。
ICE30 转到 Component 表中的每个组件,然后根据 Directory 表确定组件的目标目录。 接下来,它会检查其中哪些组件安装到同一目标目录。 最后,它使用 File 表来验证这些组件中没有文件是同名的。
ICE30 检查长文件名 (LFN) 和短文件名 (SFN)。
ICE30 不会评估目录解析中的属性,因为这些属性可能会在运行时更改并更改目录解析方案。 这意味着 ICE30 可以检测由于目录在其路径中具有相同属性而导致的文件冲突,但不会检测到两个具有相同值的属性导致的冲突。
ICE30 针对将同一文件安装到同一目录的每对组件发布一个错误消息。
显示的示例将下面每个错误返回两次。
ICE30 错误或警告 | 说明 |
---|---|
错误: 目标文件 "README.1st" 由 SFN 系统上的两个不同组件 "Component1" 和 "Component2" 安装在 "TARGETDIR\PRODUCT" 中。 这导致组件引用计数中断。 | Component1 和 Component2 都有一个名为“READEME.1st”的文件。 使用短文件名时,安装程序会将 Dir1 和 Dir2 安装到同一目录 TARGETDIR\PRODUCT。 ICE30 生成两个错误,每个文件一个。 在显示错误位置的创作环境中,第一个错误在 File 表中一个文件的条目中显示,第二个错误在另一个文件的位置显示。 |
错误: 安装条件化组件会导致目标文件 "README.1st" 由 LFN 系统上的两个不同组件 "Component3" 和 "Component4" 安装在 "TARGETDIR\COMMON TOOLS" 中。 这会导致组件引用计数中断。 | Component4 在 Component 表的“条件”列中有一个条目,而 Component3 没有。 如果 VersionNT 为 True,则安装 Component4,并且与 Component3 总是安装的 Readme.1st 存在冲突。 ICE30 生成 4 个错误,一对用于 SFN,一个用于 LFN。 |
警告: 目标文件 "README.1st" 可能由 SFN 系统上的两个不同的条件化组件 "Component4" 和 "Component5" 安装在 "TARGETDIR\COMMON TOOLS" 中。 如果条件不互斥,这会导致组件引用计数系统中断。 | 由于 Component4 和 Component5 在 Component 表的“条件”列中都有条目,因此可能不会发生此文件冲突。 ICE30 仅发布警告,因为在安装时必须确定条件。 ICE30 生成 4 个警告,一对用于 SFN,一个用于 LFN。 |
Component 表(部分)
组件 | Directory | 条件 |
---|---|---|
Component1 | Dir1 | |
Component2 | Dir2 | |
Component3 | Dir3 | |
Component4 | Dir3 | VersionNT |
Component5 | Dir3 | Version9X |
Directory | Parent_Directory | DefaultDir |
---|---|---|
SOURCEDIR | TARGETDIR | |
Dir1 | SOURCEDIR | Product|Component1 Product:. |
Dir2 | SOURCEDIR | Product:. |
Dir3 | SOURCEDIR | Common|Common Tools: |
File 表(部分)
文件 | Component_ | FileName |
---|---|---|
文件 1 | Component1 | README.1st |
文件 2 | Component2 | README.1st |
File3 | Component3 | README.1st |
File4 | Component4 | README.1st |
File5 | Component5 | README.1st |
文档
MsiFormatRecordA 函数 (msiquery.h) - Win32 apps
MsiFormatRecord 函数使用格式字符串设置记录字段数据和属性的格式。 (ANSI)