InstallFiles 動作
InstallFiles 巨集指令會將 File 資料表中指定的檔案從來源目錄複寫到目的地目錄。
順序限制
InstallFiles 動作必須位於 InstallValidate 動作之後,以及任何檔案相依動作之前。
ActionData 訊息
欄位 | 動作資料的描述 |
---|---|
[1] | 已安裝檔案的識別碼。 |
[6] | 已安裝檔案的大小,以位元組為單位。 |
[9] | 保存已安裝檔案之目錄的識別碼。 |
備註
InstallFiles 巨集指令會在 File 資料表中指定的檔案上運作。 每個檔案都是根據 元件資料表中檔案相關聯元件的安裝狀態來安裝。 只有元件解析為 msiInstallStatelocal 狀態的檔案才符合複製資格。
InstallFiles 巨集指令會實作 File 資料表的下列資料行。
- FileName 資料行會指定目的檔案名。
- [版本] 資料行會指定檔案版本。
- [屬性] 資料行會指定檔案和安裝屬性旗標位。
- [檔案] 資料行會指定唯一的檔案權杖。
- FileSize 資料行會以位元組為單位指定未壓縮的檔案大小。
- [語言] 資料行會指定檔案語言識別項。
- Sequence 資料行會指定媒體上的序號。
InstallFiles 巨集指令會實作 Component 資料表的下列資料行。
- Directory_資料行會指定 Directory 資料表 專案的參考。
- [元件] 資料行會指定元件專案的唯一名稱。
只有在下列其中一個為 true 時,才會複製指定的檔案:
- 檔案目前未安裝在本機電腦上。
- 檔案位於本機電腦上,但版本號碼低於 File 資料表中的檔案。
- 檔案位於本機電腦上,但沒有相關聯的版本號碼。
要複製之每個檔案的來原始目錄取決於 sourceMode,而來原始目錄會依 Media 資料表的封包資料行中的值而定。 如需來源模式的完整討論,請參閱 媒體資料表。
如果要複製之檔案的來原始目錄位於卸載式媒體上,例如磁碟片或 CD-ROM,InstallFiles 動作會先確認已插入適當的來源媒體,然後再嘗試複製檔案。 InstallFiles 會搜尋相同抽取式類型的媒體,其中包含符合 Media 資料表之 VolumeLabel 資料行中指定值的 磁片 區標籤。 如果找到相符的掛接磁片區,檔案複製程式會繼續進行。 如果找不到相符專案,對話方塊會要求使用者插入適當的媒體。 在此情況下,對話方塊會使用 Media 資料表的 DiskPrompt 資料行中找到的媒體名稱做為提示的一部分。
請務必小心,因為 InstallFiles 動作可以刪除原始檔案,而不會加以取代。 當 InstallFiles 動作在取代較舊的檔案時遇到錯誤,而且使用者選擇忽略錯誤時,就會發生這種情況。 安裝程式的預設行為是先刪除舊檔案,再確保正確複製新檔案。
如需安裝程式所使用的檔案版本設定規則,請參閱 檔案版本設定規則。