InstallValidate アクション
InstallValidate アクションは、 コスト が発生したすべての ボリューム にインストールに十分な領域があることを確認します。 いずれかのボリュームにディスク領域が不足している場合、InstallValidate アクションは致命的なエラーでインストールを終了します。
また、InstallValidate アクションは、上書きまたは削除する 1 つ以上のファイルが現在アクティブなプロセスで使用されているかどうかをユーザーに通知します。 詳細については、「 システムの再起動」を参照してください。
シーケンスの制限
CostFinalize アクションと、ユーザーが選択状態やディレクトリを変更できるようにする UI ダイアログ ボックス シーケンスは、InstallValidate アクションの前にシーケンスする必要があります。
機能またはコンポーネントのインストール状態を変更するカスタム アクション は、InstallValidate アクションの前にシーケンスする必要があります。
ActionData のメッセージ
ActionData のメッセージはありません。
解説
通常、以前の UI ダイアログ ボックス シーケンスでは、ユーザーがファイルのコピーを開始しようとしたときに、InstallValidate アクションと同じ検証を実行する必要があります。 選択したボリュームにインストールに十分な領域がない場合は、この UI ダイアログ ボックスのシーケンスで [ ディスク領域不足 ] ダイアログ ボックスが表示されます。 ディスク領域が不足している場合にユーザーがインストールを続行できないようにするために、UI ダイアログ ボックスを作成する必要があります。 サイレント インストールの場合、ユーザー インターフェイスがなく、ディスク領域が不足している場合は、InstallValidate アクションによってインストールが終了します。 ログ記録が有効になっている場合、途中終了の原因はログ ファイルに記録されます。
ファイルの コスト計算中に任意のプロセスで、実行または変更のためにファイルが開いている間に上書きまたは削除された場合、エントリは内部 FilesInUse テーブルに追加されます。 FilesInUse テーブルには、ファイルの名前と完全パスの列が含まれています。 InstallValidate アクションが実行されると、インストーラーは FilesInUse テーブルにエントリのクエリを実行し、ファイルを使用してプロセスの名前を決定します。 InstallValidate アクションは、このクエリによって識別される一意のプロセスごとに ListBox ユーザー インターフェイス テーブルに 1 つのレコードを追加します。 レコードには、各列に次の値が含まれています。
プロパティ: FileInUseProcess
値: プロセスの名前
テキスト: プロセスのメイン ウィンドウのキャプションに含まれるテキスト
[InstallValidate] アクションを実行すると、[ 使用中のファイル ] ダイアログ ボックスが表示されます。 このダイアログ ボックスには、使用中のファイルを置き換えるためにシステムを再起動する必要がないように、シャットダウンする必要があるプロセスが表示されます。
InstallValidate アクションは、予約された名前 FilesInUse ダイアログを使用して、作成されたダイアログボックスの ダイアログ テーブルのクエリを実行して表示します。 このダイアログ ボックスには、FileInUseProcess という名前のプロパティに関連付けられた ListBox コントロールが含まれている必要があります。 慣例により、このダイアログ ボックスには[ 終了]、[ 再試行]、または[ 無視 ] ボタンがありますが、これは UI 作成者次第です。 各ボタンは、 ControlEvent テーブルの EndDialog ControlEvent に関連付ける必要があります。 InstallValidate アクションは、 DoAction ControlEvent によって返される値に対して次のように応答します。これは、ユーザーがプッシュしたボタンに関連付けられている次のいずれかの EndDialog 引数によって指定されます。
再試行: ListBox テーブルに追加されたすべての値がクリアされ、ファイルの コスト計算 手順全体が繰り返され、まだ使用中のファイルがあるか再確認されます。 1 つ以上のプロセスが上書きまたは削除されるファイルを使用しているとまだ識別されている場合、プロセスは繰り返されます。それ以外の場合、InstallValidate は msiDoActionStatusSuccess の状態でインストーラーに制御を返します。
終了: InstallValidate アクションは、msiDoActionStatusUserExit の状態で、直ちにインストーラーに制御を返します。 これにより、インストールが終了します。
その他の戻り値: InstallValidate アクションは、msiDoActionStatusSuccess の状態で、直ちにインストーラーに制御を返します。 この場合、1 つ以上のファイルがまだ使用中であるため、後続の InstallFiles アクションまたは InstallAdminPackage アクションでは、システムの再起動時に使用中のファイルの置き換えまたは削除をスケジュールする必要があります。
データベースに ListBox テーブルがない場合、InstallValidate はエラーなしで自動的に終了します。
セミコロンは、変換、ソース、パッチのリスト区切り記号であり、これらのファイル名またはパスでは使用しないでください。
読み取り専用の場所にある読み取り専用としてマークされたファイルは、インストーラーによって使用されているとは見なされません。
ユーザー インターフェイス レベルが基本の場合は、[ 中止 ] ボタンと[ 再試行 ] ボタンを含む既定の [ ディスク領域不足 ] ダイアログ ボックスがユーザーに表示されます。