FileTable

[檔案資料表] 包含來源檔案的完整清單,其各種屬性依唯一、非當地語系化的識別碼排序。 檔案可以儲存在來源媒體上,做為個別檔案,或壓縮在 封包檔案內。 如需詳細資訊,請參閱 使用封包和壓縮來源

[檔案資料表] 具有下列資料行。

資料行 類型 答案 Nullable
檔案 識別碼 Y N
Component_ 識別碼 N N
FileName 檔案名稱 N N
FileSize DoubleInteger N N
版本 版本 N Y
語言 Language N Y
屬性 整數 N Y
順序 整數 N N

 

資料行

可唯一識別檔案的非當地語系化權杖。 此欄位不區分大小寫。 請勿將識別碼指派給不同的檔案,這些檔案只與其大小寫不同。

Component_

元件 資料表第一個資料行的外部索引鍵。 此欄位會識別控制檔案的元件。

檔案名

用於安裝的檔案名。 名稱可能會當地語系化。

由於某些網頁伺服器可能會區分大小寫,所以 FileName 應該完全符合原始程式檔的大小寫,以確保支援網際網路下載。

FileSize

以位元組為單位的檔案大小。 這必須是非負數。

版本

此欄位是版本檔案的版本字串。 非版本化檔案的這個欄位是空白的。 在此欄位中輸入的檔案版本必須與安裝套件隨附的檔案版本相同。

[版本] 欄位也可以設定為包含 [檔案] 資料表中另一筆記錄的主鍵。 接著,參考的檔案會決定此檔案的版本設定邏輯。 如需詳細資訊,請參閱 隨附檔案。 請注意,如果此檔案是其元件的索引鍵路徑,則不得指定為隨附檔案。

語言

以逗號分隔的十進位語言識別項清單。

字型檔案不應使用語言識別項撰寫,因為字型沒有內嵌的語言識別項資源。 因此,此資料行應該為字型檔案保留 Null。

屬性

整數,包含代表檔案屬性的位旗標。

下表顯示位欄位的定義。

常數 十六進位 Decimal 描述
msidbFileAttributesReadOnly 0x000001 1 唯讀
msidbFileAttributesHidden 0x000002 2 Hidden
msidbFileAttributesSystem 0x000004 4 系統
msidbFileAttributesVital 0x000200 512 檔案對於其所屬元件的精確作業而言非常重要。 如果安裝具有 msidbFileAttributesVital 屬性的檔案失敗,則安裝會停止並回復。 在此情況下,安裝程式會顯示沒有 [忽略] 按鈕的對話方塊。 如果未設定這個屬性,而且檔案的安裝失敗,安裝程式會顯示一個對話方塊,其中包含 [忽略] 按鈕。 在此情況下,使用者可以選擇忽略安裝檔案失敗並繼續。
msidbFileAttributesChecksum 0x000400 1024 檔案包含有效的 總和檢查碼。 修復已損毀的檔案需要總和檢查碼。
msidbFileAttributesPatchAdded 0x001000 4096 此位只能由修補程式新增,如果修補程式正在新增檔案,則為 。
msidbFileAttributesNoncompressed 0x002000 8192 檔案的來源類型未壓縮。 如果設定,請忽略 Word Count Summary 屬性。 如果 msidbFileAttributesNoncompressedmsidbFileAttributesCompressed 都未設定,檔案的壓縮狀態是由 Word Count Summary 屬性所指定。 請勿同時設定 msidbFileAttributesNoncompressedmsidbFileAttributesCompressed
msidbFileAttributesCompressed 0x004000 16384 檔案的來源類型已壓縮。 如果設定,請忽略 Word Count Summary 屬性。 如果 msidbFileAttributesNoncompressedmsidbFileAttributesCompressed 都未設定,檔案的壓縮狀態是由 Word Count Summary 屬性所指定。 請勿同時設定 msidbFileAttributesNoncompressedmsidbFileAttributesCompressed

 

如果已設定 Attributes 資料行內的 msidbFileAttributesVital 位,而且如果已選取檔案所屬的元件進行安裝,則安裝程式必須能夠安裝此檔案,才能順利完成安裝。 例如,如果安裝程式因為某些原因而無法安裝檔案 (,如果來源檔案無法位於來源映射) ,則會出現錯誤對話方塊,其中包含 [重試] 或 [取消] 選項。 對於未設定 msidbFileAttributesVital 的檔案,安裝錯誤的選項會是 「Abort」、「Retry」 和 「Ignore」 (,也就是說,使用者可以選擇順利完成安裝,而不需要安裝該檔案) 。

在 [屬性] 資料行內的 msidbFileAttributesChecksum 位應該針對安裝中的每個可執行檔設定,該可執行檔的有效 總和檢查碼 儲存在可攜式可執行檔 (PE) 檔頭。 只有在重新安裝期間,才會驗證已設定此位的檔案是否有有效的總和檢查碼。 如需詳細資訊,請參閱 REINSTALLMODE

序列

此檔案在媒體影像上的順序位置。 如果壓縮磁碟案,此順序必須對應至封包中的檔案順序。 此欄位中的整數必須等於或大於 1。

[順序] 資料行中的序號可用來指定檔案的安裝順序,以及檔案所在的來源媒體 (與 媒體資料表) 。 例如,假設檔案的序號為 92。 若要判斷此檔案所在的來源磁片,請在 Media 資料表中尋找小於 92 之最後一個序列值的專案。

雖然壓縮檔案會指派封包中的內部序號,但這些絕對數位不需要符合 File 資料表內的序號。 不過,請務必將 [檔案] 資料表中的檔案序列與封包內的檔案序列相同。

對於未壓縮的檔案,序號不一定是唯一的。 例如,如果所有檔案都未壓縮,且全部都位於一個磁片上,您可以為所有檔案提供相同的序號。

上限為 32767 個檔案。 若要建立具有更多檔案的 Windows Installer 套件,請參閱撰寫大型套件

備註

順序資料表中的InstallFilesRemoveFiles動作會處理此資料表中的資訊。 如需使用 時序表的詳細資訊,請參閱 使用時序表

資料表一開始是從檔案清單產生,但如果使用封包壓縮,則會從壓縮引擎的輸出重新產生資料表。 如需詳細資訊,請參閱 封包檔案

若要在安裝期間移動使用者電腦上的現有檔案,請使用 MoveFiles 動作MoveFile 資料表。 若要將檔案安裝到多個位置,請使用 DuplicateFiles 動作DuplicateFile 資料表

下表摘要說明 [版本] 資料行和 [語言] 資料行中值的可能組合。 如需詳細資訊,請參閱 檔案版本設定規則

版本 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 TableLockPermissions 資料表

驗證

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