功能表

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

类型 密钥 Nullable
功能 标识符 Y N
Feature_Parent 标识符 N Y
标题 Text N Y
说明 文本 N Y
显示 整数 N Y
级别 整数 N N
Directory_ 标识符 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 使用 播发属性未列出的功能。
msidbFeatureAttributesFavorSource 1 0x0001 未标记为本地安装的此功能组件将安装为从源 CD-ROM 或服务器运行。 由两个或多个功能共享的组件(其中一些组件设置为 msidbFeatureAttributesFavorLocal,部分组件设置为 msidbFeatureAttributesFavorSource)安装在本地运行。 组件 表中 标记为 msidbComponentAttributesLocalOnly 的组件始终在本地安装。 bits msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 使用 播发属性未列出的功能。
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 请注意,此位仅适用于 播发属性列出的功能。 设置此属性以防止播发该功能。
设置此属性,如果列出的功能不是父或子功能,则根据 msidbFeatureAttributesFavorLocal 和 msidbFeatureAttributesFavorSource 安装该功能。
为列出的功能的父级设置此属性,并安装父级。
为列出的功能的子级设置此属性,子项的状态为“缺席”。
省略此属性,如果列出的功能不是父或子功能,则功能状态为“播发”。
省略此属性,如果列出的功能是父或子功能,则这两个功能的状态为“播发”。
msidbFeatureAttributesUIDisallowAbsent 16 0x0010 设置此属性,用户界面不显示将功能状态更改为“缺席”的选项。 设置此属性会强制该功能进入安装状态,无论该功能是否在 UI 中可见。 省略此属性,用户界面将显示一个选项,用于将功能状态更改为“缺席”。
设置 msidbFeatureAttributesFollowParent 和 msidbFeatureAttributesUIDisallowAbsent 以确保子功能遵循父功能的状态。
设置此属性不仅会影响 UI,而且还会强制该功能安装状态,无论该功能是否在 UI 中可见。
msidbFeatureAttributesNoUnsupportedAdvertise 32 0x0020 如果操作系统 shell 不支持Windows安装程序描述符,则禁用此功能的此属性和广告。 省略此属性,并且未禁用广告。

 

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

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

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

注解

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

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

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

安装级别:

  • 对于任何安装,都有一个定义的安装级别,它是从 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