InstallFiles アクション
InstallFiles アクションは、ファイル テーブルで指定されたファイルをソース ディレクトリからコピー先ディレクトリにコピーします。
シーケンスの制限
InstallFiles アクションは、InstallValidate アクションの後、およびファイルに依存するアクションの前に実行する必要があります。
ActionData メッセージ
畑 | アクション データの説明 |
---|---|
[1] | インストールされているファイルの識別子。 |
[6] | インストールされているファイルのサイズ (バイト単位)。 |
[9] | インストールされているファイルを保持しているディレクトリの識別子。 |
備考
InstallFiles アクションは、ファイル テーブルで指定されたファイルに対して動作します。 各ファイルは、コンポーネント テーブルのファイルに関連付けられているコンポーネントのインストール状態に基づいてインストールされます。 コンポーネントが msiInstallStatelocal 状態に解決されたファイルのみが、コピーの対象となります。
InstallFiles アクションは、ファイル テーブルの次の列を実装します。
- FileName 列は、ターゲット ファイル名を指定します。
- [バージョン] 列では、ファイルのバージョンを指定します。
- [属性] 列では、ファイルおよびインストール属性フラグ ビットを指定します。
- File 列は、一意のファイル トークンを指定します。
- FileSize 列は、圧縮されていないファイル サイズをバイト単位で指定します。
- [言語] 列では、ファイル言語識別子を指定します。
- [シーケンス] 列では、メディアのシーケンス番号を指定します。
InstallFiles アクションは、コンポーネント テーブルの次の列を実装します。
- Directory_列は、Directory テーブル 項目への参照を指定します。
- [コンポーネント] 列では、コンポーネント 項目の一意の名前を指定します。
指定したファイルは、次のいずれかが当てはまる場合にのみコピーされます。
- 現在、ファイルはローカル コンピューターにインストールされていません。
- ファイルはローカル コンピューター上にありますが、ファイル テーブルのファイルよりもバージョン番号が小さくなります。
- ファイルはローカル コンピューター上にありますが、関連付けられているバージョン番号はありません。
コピーする各ファイルのソース ディレクトリは sourceMode によって決まります。これは、メディア テーブルの [キャビネット] 列の値によって異なります。 ソース モードの詳細については、「メディア」の表を参照してください。
コピーするファイルのソース ディレクトリがフロッピー ディスクや CD-ROM などのリムーバブル メディアに存在する場合、InstallFiles アクションは、ファイルのコピーを試みる前に、適切なソース メディアが挿入されていることを確認します。 InstallFiles は、メディア テーブルの VolumeLabel 列に指定された値と一致する ボリューム ラベルを持つ同じリムーバブル型のメディアを検索します。 一致するマウントされたボリュームが見つかった場合は、ファイルのコピー処理が続行されます。 一致するものが見つからない場合、ダイアログ ボックスはユーザーに適切なメディアの挿入を要求します。 この場合、ダイアログ ボックスでは、プロンプトの一部としてメディア テーブルの DiskPrompt 列にあるメディア名が使用されます。
InstallFiles アクションは元のファイルを削除して置き換えないため、注意が必要です。 これは、古いファイルの置換中に InstallFiles アクションでエラーが発生し、ユーザーがエラーを無視することを選択した場合に発生します。 インストーラーの既定の動作では、新しいファイルが正しくコピーされることを確認する前に、古いファイルを削除します。
インストーラーで使用されるファイルのバージョン管理規則については、「ファイルのバージョン管理規則を参照してください。