FileTable
[檔案資料表] 包含來源檔案的完整清單,其各種屬性會依唯一、非當地語系化的識別碼排序。 檔案可以儲存在來源媒體上,做為個別檔案或壓縮在 封包檔案內。 如需詳細資訊,請參閱 使用封包和壓縮的來源。
[檔案資料表] 具有下列資料行。
資料行 | 類型 | 答案 | Nullable |
---|---|---|---|
檔案 | 識別碼 | Y | N |
元件_ | 識別碼 | N | N |
FileName | 檔案名稱 | N | N |
FileSize | DoubleInteger | N | N |
版本 | 版本 | N | Y |
語言 | 語言 | N | Y |
屬性 | 整數 | N | Y |
順序 | 整數 | N | N |
資料行
-
檔
-
可唯一識別檔案的非當地語系化權杖。 此欄位不區分大小寫。 請勿將識別碼指派給只有大小寫不同的檔案。
-
元件_
-
元件 資料表第一個資料行的外部索引鍵。 此欄位會識別控制檔案的元件。
-
檔案名
-
用於安裝的檔案名。 名稱可以當地語系化。
由於某些網頁伺服器可能會區分大小寫,因此 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。 如果msidbFileAttributesNoncompressed或msidbFileAttributesCompressed都未設定,檔案的壓縮狀態是由Word Count Summary屬性所指定。 請勿同時設定 msidbFileAttributesNoncompressed 和 msidbFileAttributesCompressed。 msidbFileAttributesCompressed 0x004000 16384 檔案的來源類型已壓縮。 如果設定,請忽略[計數摘要] 屬性Word。 如果msidbFileAttributesNoncompressed或msidbFileAttributesCompressed都未設定,檔案的壓縮狀態是由Word Count Summary屬性所指定。 請勿同時設定 msidbFileAttributesNoncompressed 和 msidbFileAttributesCompressed。 如果已設定 Attributes 資料行內的 msidbFileAttributesVital 位,而且如果已選取檔案所屬的元件進行安裝,則安裝程式必須能夠安裝此檔案,才能順利完成安裝。 例如,如果安裝程式因為某些原因而無法安裝檔案 (,如果來源檔案無法位於來源映射) ,則會出現錯誤對話方塊,其中包含 [重試] 或 [取消] 選項。 對於未設定 msidbFileAttributesVital 的檔案,安裝錯誤時的選項會是 「Abort」、「Retry」 和 「Ignore」 (,也就是說,使用者可以選擇順利完成安裝,而不需要安裝該檔案) 。
在 [屬性] 資料行內的 msidbFileAttributesChecksum 位應該針對安裝中的每個可執行檔設定,該可執行檔的有效 總和檢查碼 儲存在可攜式可執行檔 (PE) 檔頭。 只有在重新安裝期間,才會驗證已設定此位的檔案是否有有效的總和檢查碼。 如需詳細資訊,請參閱 REINSTALLMODE。
-
序列
-
此檔案在媒體影像上的順序位置。 如果壓縮磁碟案,此順序必須對應至封包中的檔案順序。 此欄位中的整數必須等於或大於 1。
[順序] 資料行中的序號可用來指定檔案的安裝順序,以及檔案所在的來源媒體 (與 媒體資料表) 。 例如,假設檔案的序號為 92。 若要判斷此檔案所在的來源磁片,請在 Media 資料表中尋找小於 92 之最後一個序列值的專案。
雖然壓縮檔案會指派封包中的內部序號,但這些絕對數位不需要符合 File 資料表內的序號。 不過,請務必將 [檔案] 資料表中的檔案序列與封包內的檔案序列相同。
對於未壓縮的檔案,序號不一定是唯一的。 例如,如果所有檔案都未壓縮,且全部都位於一個磁片上,您可以為所有檔案提供相同的序號。
上限為 32767 個檔案。 若要建立具有更多檔案的 Windows Installer 套件,請參閱 撰寫大型套件。
備註
順序資料表中的InstallFiles和RemoveFiles動作會處理此資料表中的資訊。 如需使用 時序表的詳細資訊,請參閱 使用時序表。
資料表一開始是從檔案清單產生,但如果使用封包壓縮,則會從壓縮引擎的輸出重新產生資料表。 如需詳細資訊,請參閱 封包檔案。
若要在安裝期間移動使用者電腦上的現有檔案,請使用 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 Table 和 LockPermissions 資料表。
驗證
ICE02
ICE03
ICE04
ICE06
ICE18
ICE30
ICE32
ICE35
ICE39
ICE42
ICE45
ICE50
ICE51
ICE54
ICE55
ICE57
ICE59
ICE60
ICE67
ICE69
ICE76
ICE91