功能表

特征表定义特征的逻辑树结构,并包含下表中显示的列。

类型 钥匙
特征 标识符 Y N
Feature_Parent 标识符 N Y
标题 文本 N Y
描述 文本 N Y
显示 整数 N Y
水平 整数 N N
目录_ 标识符 N Y
属性 整数 N N

 

功能

用于标识特定功能记录的主键。 此字段中的值不得超过最大长度 38 个字符。

Feature_Parent

同一表中父记录的可选键。

关键指向功能列。 如果未选择父功能,则不会安装此功能。 此字段中的 null 值指示此功能没有父项,并且是根项。 Feature_Parent列不得等于同一记录的功能列。

注意

任何功能的最大深度为 16。 如果存在超出此最大深度的功能,则 错误 2701 结果。

 

标题

标识特征的短文本字符串。

此字符串由 选择对话框SelectionTree 控件 列为项。

说明

描述特征的较长文本字符串。

此可本地化字符串由 选择对话框文本控件 显示。

显示

此字段中的数字指定在用户界面中显示该功能的顺序。

该值还确定功能最初是展开还是折叠。 如果值为 null 或 0(零),则不显示记录。

  • 如果值为奇数,则功能节点最初会展开。
  • 如果值偶数,则功能节点最初会折叠。

级别

此功能的初始安装级别。 处理 条件表 可以修改级别值。

安装级别为 0(零)会禁用该项,并阻止显示该项目。 安装级别为 0(零)的功能在任何安装(包括管理安装)期间均未安装。 有关详细信息,请参阅本主题“备注”部分中的“安装级别”信息。

Directory_

Directory_列指定可由 选择对话框配置的目录的名称。

由于此字段是 目录表中的键,因此指定的目录必须列在目录表的第一列中。 必须在此列中输入 公共属性 以使目录可配置,并在 选择对话框上显示 浏览 按钮。

属性

未安装的功能的远程执行选项,并且未使用以下任何属性发出任何功能状态请求。

将指示的位添加到此列的总值,以包含远程执行选项。

  • 如果此字段为空,则值默认值为 0(零),msidbFeatureAttributesFavorLocal。
  • 如果功能安装级别为 0(零),或大于或等于当前安装级别,则不会更改功能状态。
名字 十进制 十六进制 描述
msidbFeatureAttributesFavorLocal 0 0x0000 未标记为从源安装的功能组件在本地安装。 由两个或多个功能共享的组件,其中一些组件设置为 msidbFeatureAttributesFavorLocal,部分组件设置为 msidbFeatureAttributesFavorSource。 组件表 中标记为 msidbComponentAttributesSourceOnly 的组件始终从源 CD/服务器运行。 bits msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 使用 ADVERTISE 属性未列出的功能。
msidbFeatureAttributesFavorSource 1 0x0001 安装此功能的组件未标记为本地安装,以便从源 CD-ROM 或服务器运行。 由两个或更多功能共享的组件(其中一些组件设置为 msidbFeatureAttributesFavorLocal,部分组件设置为 msidbFeatureAttributesFavorSource)安装在本地运行。 组件表 中标记为 msidbComponentAttributesLocalOnly 的组件始终在本地安装。 bits msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 使用 ADVERTISE 属性未列出的功能。
msidbFeatureAttributesFollowParent 2 0x0002 设置此属性和特征的状态与功能父级的状态相同。 如果该功能位于功能树的根目录中,则不能使用此选项。 省略此属性,功能状态根据 msidbFeatureAttributesDisallowAdvertise 和 msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 确定。
若要保证子功能的状态始终遵循其父项的状态,即使子项和父项最初设置为 SelectionTree 控件中不存在,还必须在子功能的属性中包含 msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesUIDisallowAbsent。
请注意,如果在未设置 msidbFeatureAttributesUIDisallowAbsent 的情况下设置 msidbFeatureAttributesFollowParent,安装程序将无法强制子功能退出缺席状态。 在这种情况下,子功能仅当子项设置为不存在以外的内容时,才与父级的安装状态匹配。
设置 msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesUIDisallowAbsent 以确保子功能遵循父功能的状态。
msidbFeatureAttributesFavorAdvertise 4 0x0004 设置此属性,功能状态为“播发”。 如果 ADDDEFAULT 属性列出该功能,则忽略此位,并且根据 msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 确定功能状态。 省略此属性,功能状态根据 msidbFeatureAttributesDisallowAdvertise 和 msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 确定。
msidbFeatureAttributesDisallowAdvertise 8 0x0008 请注意,此位仅适用于 ADVERTISE 属性列出的功能。 设置此属性以防止播发该功能。
设置此属性,如果列出的功能不是父或子功能,则根据 msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 安装该功能。
为列出的功能的父级设置此属性,并安装父级。
为列出的功能的子级设置此属性,子项的状态为“缺席”。
省略此属性,如果列出的功能不是父或子功能,则功能状态为“播发”。
省略此属性,如果列出的功能是父或子功能,则这两个功能的状态为“播发”。
msidbFeatureAttributesUIDisallowAbsent 16 0x0010 设置此属性,用户界面不显示将功能状态更改为 Absent 的选项。 设置此属性将强制该功能进入安装状态,无论该功能是否在 UI 中可见。 省略此属性,用户界面将显示将功能状态更改为 Absent 的选项。
设置 msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesUIDisallowAbsent 以确保子功能遵循父功能的状态。
设置此属性不仅会影响 UI,而且还会强制该功能安装状态,无论该功能是否在 UI 中可见。
msidbFeatureAttributesNoUnsupportedAdvertise 32 0x0020 如果作系统 shell 不支持 Windows Installer 描述符,则为该功能禁用此属性和广告。 省略此属性,并且未禁用广告。

 

某些属性互斥。 尝试在同一功能上设置这些属性会导致安装包 包验证失败。

  • 请勿将 msidbFeatureAttributesFavorAdvertise 与 msidbFeatureAttributesDisallowAdvertise 配合使用。
  • 不要将 msidbFeatureAttributesNoUnsupportedAdvertise 与 msidbFeatureAttributesDisallowAdvertise 结合使用。
  • 请勿将 msidbFeatureAttributesFollowParent 与 msidbFeatureAttributesFavorSource 配合使用。
  • 请注意,msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesFavorLocal 值互斥。 如果使用 msidbFeatureAttributesFollowParent 值,则假定 msidbFeatureAttributesFavorLocal 值不存在。

请注意,如果安装了子功能,也会安装其父功能。 如果安装了父功能,则其子功能不一定安装,除非设置了其 msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesUIDisallowAbsent 属性。 父功能和子功能的安装这种分层关系也用于使用命令行属性的 GUI 安装和安装。

言论

当将其他几个临时列加载到内存中供成本选择和用户界面(UI)选择使用的计算时,会将其添加到此表中。

可以在两个或多个功能或应用程序之间共享组件。 如果两个或多个功能引用同一组件,则选择该组件进行安装(如果选择了任何关联的功能)。 这也是删除父功能时未卸载子功能的原因。 如果子功能由其他功能或应用程序所需的组件组成,则 Windows Installer 不会删除子功能。

有关详细信息,请参阅 控制功能选择状态

安装级别:

  • 对于任何安装,都有一个定义的安装级别,它是从 1 到 32,767 的整数值。 初始值由 INSTALLLEVEL 属性确定,该属性 属性表中设置。
  • 仅当功能级别值小于或等于当前安装级别时,才会安装一项功能。 可以创作 UI,以便在安装初始化时,安装程序允许用户修改功能表中任何功能的安装级别。 例如,作者可以定义表示特定安装选项的安装级别值,例如 自定义典型最小,然后创建使用 setInstallLevel ControlEvents 的对话框,使用户能够选择其中一种状态。
  • 根据用户选择的状态,对话框会将安装级别属性设置为相应的值。 如果作者分配 典型 级别为 100,并且用户选择 典型,则仅安装级别为 100 或更低级别的这些功能。 此外,自定义 选项可能会导致另一个对话框,其中包含 SelectionTree 控件。 然后,SelectionTree 控件允许用户单独更改是否安装了每项功能。

验证

ICE03
ICE06
ICE10
ICE14
ICE21
ICE32
ICE41
ICE45
ICE47
ICE50
ICE57
ICE59
ICE62
ICE67
ICE79
ICE86
ICE94