File テーブル

File テーブルには、さまざまな属性を持つソース ファイルの完全なリストが含まれています。これらのファイルは、一意のローカライズされていない識別子別に並び替えられています。 ファイルは、ソース メディアに個々のファイルとして格納することも、キャビネット ファイル内に圧縮することもできます。 詳細については、「キャビネットと圧縮ソースの使用」を参照してください。

File テーブルには次の列があります。

Column 種類 キー Nullable
ファイル Identifier Y N
Component_ Identifier N N
FileName Filename N N
FileSize DoubleInteger N N
Version Version N Y
Language Language N Y
属性 整数 N Y
シーケンス 整数 N N

 

[列]

File

ファイルを一意に識別するローカライズされていないトークン。 このフィールドは大文字/小文字を区別しません。 大文字/小文字のみが異なる別のファイルに識別子を割り当てないでください。

Component_

Component テーブルの最初の列に対する外部キー。 このフィールドはファイルを制御するコンポーネントを識別します。

FileName

インストールに使用されるファイル名。 名前はローカライズできます。

一部の Web サーバーでは大文字/小文字が区別される場合があるため、インターネット ダウンロードのサポートを確保するために、FileName はソース ファイルの大文字/小文字を正確に一致させる必要があります。

FileSize

ファイルのサイズ (バイト単位)。 この値は負ではない数である必要があります。

Version

このフィールドはバージョン付きファイルのバージョン文字列です。 バージョンなしのファイルの場合、このフィールドは空白です。 このフィールドに入力するファイルのバージョンは、インストール パッケージに含まれるファイルのバージョンと同じである必要があります。

また、Version フィールドは File テーブルにある別のレコードの主キーを格納するように設定できます。 その後、参照されるファイルにより、このファイルのバージョン管理ロジックが決定されます。 詳細については、「コンパニオン ファイル」を参照してください。 このファイルがそのコンポーネントの主パスである場合は、コンパニオン ファイルとして指定しないでください。

Language

コンマで区切られた 10 進数言語 ID のリスト。

フォントには言語 ID リソースが埋め込まれていないので、フォント ファイルを言語 ID で作成しないでください。 したがって、フォント ファイルに対してこの列は null のままにする必要があります。

Attributes

ファイル属性を表すビット フラグを含む整数。

次のテーブルにビット フィールドの定義を示します。

一定 16 進数 Decimal (10 進数型) 説明
msidbFileAttributesReadOnly 0x000001 1 読み取り専用
msidbFileAttributesHidden 0x000002 2 [非表示]
msidbFileAttributesSystem 0x000004 4 システム
msidbFileAttributesVital 0x000200 512 このファイルは、コンポーネントが属するコンポーネントへの正確な操作に不可欠です。 msidbFileAttributesVital 属性を持つファイルのインストールが失敗した場合、インストールは停止してロールバックされます。 この場合、インストーラーには [無視] ボタンのないダイアログ ボックスが表示されます。 この属性が設定されておらずファイルのインストールが失敗した場合、インストーラーには [無視] ボタンを含むダイアログ ボックスが表示されます。 この場合は、ユーザーは失敗を無視してファイルをインストールして続行することを選択できます。
msidbFileAttributesChecksum 0x000400 1024 ファイルに有効なチェックサムが含まれています。 破損したファイルを修復するには、チェックサムが必要です。
msidbFileAttributesPatchAdded 0x001000 4096 ファイルがパッチによって追加されている場合に、このビットはパッチによってのみ追加する必要があります。
msidbFileAttributesNoncompressed 0x002000 8192 このファイルのソースの種類は圧縮されていません。 設定した場合は、Word Count Summary プロパティを無視します。 msidbFileAttributesNoncompressed または msidbFileAttributesCompressed のどちらも設定されていない場合、ファイルの圧縮状態は Word Count Summary プロパティにより指定されます。 msidbFileAttributesNoncompressedmsidbFileAttributesCompressed の両方を設定しないでください。
msidbFileAttributesCompressed 0x004000 16384 このファイルのソースの種類は圧縮されています。 設定した場合は、Word Count Summary プロパティを無視します。 msidbFileAttributesNoncompressed または msidbFileAttributesCompressed のどちらも設定されていない場合、ファイルの圧縮状態は Word Count Summary プロパティにより指定されます。 msidbFileAttributesNoncompressedmsidbFileAttributesCompressed の両方を設定しないでください。

 

Attributes 列内の msidbFileAttributesVital ビットが設定されていてファイルが属するコンポーネントがインストールのために選択されている場合、インストーラーはインストールを正常に完了するためにこのファイルをインストールできる必要があります。 インストーラーが何らかの理由でファイルをインストールできない場合 (ソース ファイルをソース イメージ内に配置できない場合など)、エラー ダイアログ ボックスが表示されて [再試行] または [キャンセル] オプションが表示されます。 msidbFileAttributesVital が設定されていないファイルでは、インストール エラーが発生した場合のオプションは「中止」、「再試行」、「無視」になります (つまり、ユーザーにはファイルをインストールせずに正常にインストールを完了するオプションが用意されています)。

Attributes 列内の msidbFileAttributesChecksum ビットは、ポータブル実行可能ファイル (PE) ファイル ヘッダーに格納されている有効なチェックサムを持つインストールにあるすべての実行可能ファイルに対して設定する必要があります。 再インストール中に有効なチェックサムが検証されるのは、このビットが設定されているファイルのみです。 詳細については、「REINSTALLMODE」を参照してください。

Sequence

メディア イメージ上にあるこのファイルのシーケンス位置。 ファイルが圧縮されている場合、この順序はキャビネットにあるファイルの順序に対応している必要があります。 このフィールドの整数は 1 以上である必要があります。

Sequence 列のシーケンス番号は、ファイルのインストール順序とファイルが配置されているソース メディアの両方を指定するために (Media テーブルと組み合わせて) 使用されます。 たとえば、ファイルのシーケンス番号が 92 だとします。 このファイルが存在するソース ディスクを確認するには、Media テーブルで 92 より大きい最小の Last Sequence 値を持つエントリを探します。

圧縮されたファイルにはキャビネット内の内部シーケンス番号が割り当てられますが、これらの絶対数は File テーブル内のシーケンス番号と一致する必要はありません。 ただし、File テーブルにあるファイルのシーケンスはキャビネット内にあるファイルのシーケンスと同じであることが重要です。

圧縮されていないファイルの場合、シーケンス番号は一意である必要はありません。 たとえば、すべてのファイルが圧縮されておらず 1 つのディスクに存在する場合は、すべてのファイルに同じシーケンス番号を指定できます。

上限は 32,767 ファイルです。 より多くのファイルを含む Windows インストーラー パッケージを作成するには、「大型パッケージの作成」を参照してください。

解説

シーケンス テーブルInstallFilesRemoveFiles アクションは、このテーブルの情報を処理します。 シーケンス テーブルの使用については、「Sequence テーブルの使用」を参照してください。

テーブルは最初はファイル リストから生成されますが、キャビネットの圧縮を使用するとテーブルが圧縮エンジンの出力から再生成されます。 詳細については、「キャビネット ファイル」を参照してください。

インストール中にユーザーのコンピューターにある既存のファイルを移動するには、MoveFiles アクションMoveFile テーブルを使用します。 ファイルを複数の場所にインストールするには、DuplicateFiles アクションDuplicateFile テーブルを使用します。

次のテーブルは、Version 列と Language 列にある値の可能な組み合わせをまとめたものです。 詳細については、「ファイルのバージョン管理ルール」を参照してください。

Version Language 説明
1.2.3.4 1033 バージョンと言語。
1.2.3.4 (Null) バージョンだけ、言語はなし。
1.2.3.4 0 バージョンと言語に依存しない。
Testdb (Null) 言語が関連付けられていないコンパニオン ファイル。
Testdb 1033 コンパニオン ファイルと言語。
(Null) 1033 バージョンはないが言語は関連付けられている (つまり、typelib、helpfile)。

 

詳細については、「MsiLockPermissionsEx テーブル」と「LockPermissions テーブル」を参照してください。

検証

ICE02
ICE03
ICE04
ICE06
ICE18
ICE30
ICE32
ICE35
ICE39
ICE42
ICE45
ICE50
ICE51
ICE54
ICE55
ICE57
ICE59
ICE60
ICE67
ICE69
ICE76
ICE91