機能テーブル

Feature テーブルでは機能の論理的なツリー構造が定義されます。これには次の表に示す列が含まれます。

Column 種類 キー Nullable
特徴量 Identifier Y N
Feature_Parent Identifier N Y
Title テキスト N Y
説明 [テキスト] N Y
表示 整数 N Y
Level 整数 N N
Directory_ Identifier N Y
属性 整数 N N

 

[列]

Feature

特定の機能レコードを識別するために使用される主キー。 このフィールドの値は最大 38 文字を超えてはなりません。

Feature_Parent

同じテーブル内の親レコードの省略可能なキー。

キーは Feature 列を指します。 親機能が選択されていない場合、この機能はインストールされません。 このフィールドの null 値は、この機能には親が存在せず、この機能がルート項目であることを示します。 Feature_Parent 列は、同じレコードの Feature 列と同じであってはなりません。

Note

機能の深さは最大で 16 です。 深さがこの最大値を超える機能が存在する場合、エラー 2701 が発生します。

 

Title

機能を識別する短いテキスト文字列。

この文字列が、Selection ダイアログSelectionTree コントロールによって項目として一覧表示されます。

Description

機能について説明する長い文字列。

このローカライズ可能な文字列は、Selection ダイアログText コントロールによって表示されます。

Display

このフィールド内の数値は、機能がユーザー インターフェイスに表示される順序を指定します。

この値によって、機能が最初に展開表示されるか折りたたまれて表示されるかも決まります。 値が null または 0 (ゼロ) の場合、レコードは表示されません。

  • 値が奇数の場合、最初は機能ノードが展開されています。
  • 値が偶数の場合、最初は機能ノードが折りたたまれています。

Level

この機能の初期インストール レベル。 Condition テーブルを処理してレベルの値を変更できます。

インストール レベルが 0 (ゼロ) では、項目が無効になり表示されません。 インストール・レベルが 0 (ゼロ) の機能は、管理インストールを含め、すべてのインストール時にインストールされません。 詳細については、このトピックの「解説」セクションの「インストール レベル」の情報を参照してください。

Directory_

Directory_ 列には、Selection ダイアログによって構成できるディレクトリの名前が指定されます。

このフィールドは Directory テーブルのキーであるため、指定したディレクトリを Directory テーブルの最初の列に指定する必要があります。 ディレクトリを構成できるようにして、Selection ダイアログ[参照] ボタンを表示するには、この列にパブリック プロパティを入力する必要があります。

Attributes

インストールされない機能のリモート実行オプション。これらについては、次のいずれかのプロパティを使用して機能の状態の要求が行われることはありません。

指定されたビットをこの列の合計値に追加して、リモート実行オプションを含めます。

  • このフィールドが空の場合、既定値は 0 (ゼロ)、msidbFeatureAttributesFavorLocal になります。
  • 機能のインストール レベルが 0 (ゼロ) であるか、現在のインストール レベル以上である場合、機能の状態は変化しません。
名前 Decimal 16 進数 説明
msidbFeatureAttributesFavorLocal 0 0x0000 ソースからのインストールとしてマークされていないこの機能のコンポーネントは、ローカルでインストールされます。 2 つ以上の機能で共有されるコンポーネント (一部が msidbFeatureAttributesFavorLocal に設定され、一部が msidbFeatureAttributesFavorSource に設定されている) は、ローカルでインストールされます。 Component テーブル で msidbComponentAttributesSourceOnly としてマークされるコンポーネントは、常にソース CD/サーバーから実行されます。 msidbFeatureAttributesFavorLocal および msidbFeatureAttributesFavorSource のビットは、ADVERTISE プロパティによって指定されていない機能と連携します。
msidbFeatureAttributesFavorSource 1 0x0001 ローカル インストールとしてマークされていないこの機能のコンポーネントは、ソース CD-ROM またはサーバーから実行してインストールされます。 2 つ以上の機能で共有されるコンポーネント (一部が msidbFeatureAttributesFavorLocal に設定され、一部が msidbFeatureAttributesFavorSource に設定されている) は、ローカルで実行してインストールされます。 Component テーブルで msidbComponentAttributesLocalOnly としてマークされているコンポーネントは、常にローカルでインストールされます。 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 この属性を設定すると、機能の状態を不在に変更するオプションがユーザー インターフェイスに表示されません。 この属性を設定すると、機能が UI に表示されるかどうかには関係なく、機能が強制的にインストール状態になります。 この属性を省略し、機能の状態を不在に変更するオプションがユーザー インターフェイスに表示されます。
msidbFeatureAttributesFollowParent と msidbFeatureAttributesUIDisallowAbsent を設定すると、子機能が親機能の状態と同じになります。
この属性を設定すると、UI に影響するだけではなく、機能が UI に表示されるかどうかには関係なく、機能が強制的にインストール状態になります。
msidbFeatureAttributesNoUnsupportedAdvertise 32 0x0020 この属性を設定すると、オペレーティング システム シェルによって Windows インストーラー記述子がサポートされない場合、機能の公開が無効になります。 この属性を省略すると、公開は無効になりません。

 

一部の属性は互いに排他的です。 これらの属性を同じ機能に対して一緒に設定しようとすると、インストール パッケージのパッケージ検証が失敗します。

  • msidbFeatureAttributesFavorAdvertise を msidbFeatureAttributesDisallowAdvertise と共に使用しないでください。
  • msidbFeatureAttributesNoUnsupportedAdvertise を msidbFeatureAttributesDisallowAdvertise と共に使用しないでください。
  • msidbFeatureAttributesFollowParent を msidbFeatureAttributesFavorSource と共に使用しないでください。
  • msidbFeatureAttributesFollowParent 値と msidbFeatureAttributesFavorLocal 値は相互に排他的であることに注意してください。 msidbFeatureAttributesFollowParent 値を使用する場合、msidbFeatureAttributesFavorLocal 値は存在しないと見なされます。

子機能がインストールされる場合にその親機能もインストールされることに注意してください。 親機能がインストールされても、msidbFeatureAttributesFollowParent 属性と msidbFeatureAttributesUIDisallowAbsent 属性が設定されない限り、子機能は必ずしもインストールされません。 親機能と子機能のインストールの階層関係は、GUI インストールおよびコマンド ライン プロパティを使用するインストールでも使用されます。

解説

このテーブルがコスト処理やユーザー インターフェイス (UI) 選択に使用される計算のためにメモリに読み込まれるとき、さらにいくつかの一時列がこのテーブルに追加されます。

コンポーネントは、2 つ以上の機能またはアプリケーション間で共有できます。 2 つ以上の機能が同じコンポーネントを参照している場合、そのコンポーネントはインストール対象として選択されます (関連する機能のいずれかが選択された場合)。 これは、親機能が削除されても子機能がアンインストールされない理由でもあります。 子機能を構成するコンポーネントが他の機能またはアプリケーションで必要な場合、Windows インストーラーは子機能を削除しません。

詳細については、「機能の選択の状態の制御」を参照してください。

インストール レベル:

  • すべてのインストールにはインストール レベルが定義されます。これは 1 から 32,767 までの整数値です。 初期値は、Property テーブルに設定される INSTALLLEVEL プロパティによって決定されます。
  • 機能がインストールされるのは、機能レベルの値が現在のインストール レベル以下の場合のみです。 インストールの初期化時に、ユーザーが Feature テーブル内の任意の機能のインストール レベルを変更できるように、UI を作成できます。 たとえば、作成者は、特定のインストール オプション (CustomTypical、またはMinimum など) を表すインストール レベルの値を定義でき、SetInstallLevel ControlEvents を使用するダイアログ ボックスを作成して、ユーザーがそれらの状態の 1 つを選択できるようにします。
  • ユーザーが選択する状態に応じて、ダイアログ ボックスによって、インストール レベル プロパティが対応する値に設定されます。 作成者が Typical にレベル 100 を割り当て、ユーザーが Typical を選択した場合、レベル 100 以下の機能のみがインストールされます。 また、Custom オプションを選択すると、SelectionTree コントロールを含む別のダイアログ ボックスが表示されるようにできます。 その後、SelectionTree コントロールを使用して、ユーザーが各機能をインストールするかどうかを個別に変更できるようにします。

検証

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