Session.FeatureValidStates 属性

Session 对象的 FeatureValidStates 属性返回一个表示位标志的整数,每个相关位表示指定功能的有效安装状态。

此属性为只读。

语法

propVal = Session.FeatureValidStates

属性值

要检索其有效安装状态的功能项的必需字符串名称。

备注

返回值由位标志组成,如下所示。 位 0:如果设置,则 Local 为有效状态。 位 1:如果设置,则 Source 为有效状态。

只有在安装程序调用 CostInitializeCostFinalize 操作后,FeatureValidStates 属性才会成功。

FeatureValidStates 通过查询链接到指定功能的所有组件来确定状态有效性,而不考虑任何组件的当前安装状态。

功能的可能有效状态确定如下:

  • 如果功能不包含组件,则 INSTALLSTATE_LOCAL 和 INSTALLSTATE_SOURCE 都是功能的有效状态。
  • 如果功能的至少一个组件具有 msidbComponentAttributesLocalOnly 或 msidbComponentAttributesOptional 属性,则 INSTALLSTATE_LOCAL 是功能的有效状态。
  • 如果功能的至少一个组件具有 msidbComponentAttributesSourceOnly 或 msidbComponentAttributesOptional 属性,则 INSTALLSTATE_SOURCE 是功能的有效状态。
  • 如果属于功能的组件的文件已修补或来自压缩源,则不会将 INSTALLSTATE_SOURCE 作为功能的有效状态包含在内。
  • 如果功能禁止播发 (msidbFeatureAttributesDisallowAdvertise) 或功能需要平台支持播发 (msidbFeatureAttributesNoUnsupportedAdvertise) 而平台不支持,则 INSTALLSTATE_ADVERTISE 不是有效状态。
  • 如果功能的属性不包括 msidbFeatureAttributesUIDisallowAbsent,则 INSTALLSTATE_ABSENT 是功能的有效状态。
  • 标记为遵循父功能 (msidbFeatureAttributesFollowParent) 的子功能的有效状态基于父功能的操作或安装状态。

如果该属性失败,可以使用 LastErrorRecord 方法获取扩展的错误信息。

要求

要求
版本
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
DLL
Msi.dll
IID
IID_ISession 定义为 000C109E-0000-0000-C000-000000000046