Session オブジェクト (Windows インストーラー)

Session オブジェクトはインストール プロセスを制御します。 インストール テーブルとデータを含むインストーラー データベースが開きます。 このオブジェクトは、1 つ以上のテーブルのデータに対して特定の操作を実行するアクション関数の標準セットに関連付けられています。 追加のカスタム アクションを特定の製品のインストールに対して追加できます。 基本エンジン関数はシーケンサーで、シーケンシャル レコードを指定されたシーケンス テーブルからフェッチして指定された条件式を評価し、指定されたアクションを実行します。 エンジンによって認識されないアクションは、処理のために UI ハンドラー オブジェクトに遅延されます (通常はダイアログ ボックス シーケンス)。

1 つのプロセスで開ける Session オブジェクトは 1 つだけであることにご注意ください。

メンバー

Session オブジェクトには次の種類のメンバーがあります。

メソッド

Session オブジェクトには次のメソッドがあります。

方法 説明
DoAction 指定したアクションを実行します。
EvaluateCondition シンボルと値を含む論理式を評価し、列挙 msiEvaluateConditionErrorEnum の整数を返します。
FeatureInfo 指定した機能の説明情報を含む FeatureInfo オブジェクトを返します。
FormatRecord 書式設定された文字列をテンプレートとレコード データから返します。
Message 有効なログ記録操作を実行し、エンジンに関連付けられている UI ハンドラー オブジェクトへの実行を遅延します。
Sequence クエリを指定したテーブルで開き、アクションを Sequence 列の数値で並べ替えます。 フェッチされる各行について、指定された条件式が False に評価されない場合は DoAction メソッドが呼び出されます。
SetInstallLevel 現在のインストールのインストール レベルを指定した値に設定し、すべての機能の [選択] と [インストール済み] の状態を再計算します。

 

プロパティ

Session オブジェクトには次のプロパティがあります。

プロパティ アクセスの種類 説明
ComponentCosts
コンポーネントのインストールに必要なドライブあたりのディスク領域を列挙する RecordList オブジェクトを返します。
ComponentCurrentState
指定されたコンポーネントの現在のインストール状態を返します。
ComponentRequestState
Component テーブルにある行の Action 状態の変更を取得または要求します。
データベース
現在のインストール セッションのデータベースを返します。
FeatureCost
指定した機能とその親機能 (最大で Feature テーブルのルート) に必要なディスク領域の合計量 (512 バイト単位) を返します。
FeatureCurrentState
指定された機能に関する現在のインストール状態を返します。
FeatureRequestState
読み取り/書き込み
機能のレコードとサブレコードの選択状態に関する変更を取得または要求します。
FeatureValidStates
ビット フラグを表す整数を、指定した機能の有効なインストール状態を表す関連ビットごとに返します。
Installer
アクティブなインストーラー オブジェクトを返します。
Language (Session オブジェクト)
現在のインストール セッションで使用される数値言語識別子を表します。
モード
このプロパティは、現在のインストール セッションで指定されたモード フラグを表す値です。
ProductProperty
名前付きインストーラー プロパティの文字列値を表します。
Property (Session オブジェクト)
読み取り/書き込み
製品プロパティを製品データベースから取得します。
SourcePath
ソース メディアまたはサーバー イメージ上の指定されたフォルダーに対する完全なパスを提供します。
TargetPath
読み取り/書き込み
インストールのターゲット ドライブ上の指定されたフォルダーに対する完全なパスを提供します。
VerifyDiskSpace
十分なディスク領域が存在する場合は true、しない場合は false を返します。

 

必要条件

要件
バージョン
Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Server 2008 または Windows Vista の Windows インストーラー 4.0 または Windows インストーラー 4.5。 Windows Server 2003 または Windows XP の Windows インストーラー
[DLL]
Msi.dll
IID
IID_ISession が 000C109E-0000-0000-C000-000000000046 として定義されている

こちらもご覧ください

Windows インストーラーのスクリプト作成の例