使用目錄表
Directory 數據表 指定安裝的配置。 在 CostFinalize 動作期間解析目錄時,目錄數據表中的索引鍵會變成 屬性, 設定為目錄路徑。 請注意,安裝程式會將一些標準 屬性設定為系統資料夾路徑。 請參閱 屬性參考,以獲得設為系統資料夾的屬性清單。
指定目錄目標位置的最佳方式是在安裝套件中撰寫 Directory 數據表,以提供本節所討論的正確位置。 如果需要在安裝時變更目錄位置,另請參閱一節:變更目錄的目標位置
以下是 Directory 數據表的範例。
目錄 | 目錄_父項 | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
EXEDIR | TARGETDIR | 應用程式 |
DLLDIR | EXEDIR | 箱子 |
桌面資料夾 | TARGETDIR | 桌面 |
目錄數據表的每個數據列都會指出來源和目標上的目錄。 例如,假設安裝套件位於 \\applications\source\。 由於第一個數據列的Directory_Parent欄位為 Null,因此此記錄會指出來源和目標的根目錄。 針對來源,此目錄的值是由DefaultDir欄位所指定。 SourceDir 屬性預設為安裝套件的位置。 因此,除非覆寫 SourceDir 屬性,否則根來源目錄為 \\applications\source\。
第一筆記錄的 [目錄] 字段表示根目標目錄的位置。 在此情況下,TARGETDIR屬性的值會指出此目錄。 一般而言,TARGETDIR 屬性的值是在命令行或透過使用者介面設定。 在此情況下,假設 TARGETDIR 屬性 設定為 C:\Program Files\Target\.
針對第二筆記錄,Directory_Parent字段不是 Null。 因此,此記錄表示來源和目標的非根目錄。 對於非根來源目錄,Directory_Parent 字段中所述的記錄所指示的來源目錄是父目錄。 在第二筆記錄中,Directory_Parent 欄位為 TARGETDIR。 如先前所示,TARGETDIR 記錄所指示的來源目錄解析為 \\applications\source\。 因此,第二筆記錄所指出的來源目錄是 \\applications\source\App\。
類似的程式適用於目標目錄。 第二筆記錄中所描述之目標目錄的父目錄值,是 [Directory_Parent] 字段解析的目標目錄。 同樣地,Directory_Parent欄位包含 TARGETDIR 值。 這表示解析為 C:\Program Files\Target\ 目標目錄的第一筆記錄。 [目錄] 欄位包含名為 EXEDIR 的作者定義屬性。 如果已設定這個屬性,則其值會提供目錄的完整路徑。 因此,如果此屬性設定為 C:\Data\Common\,則第二筆記錄所指示的目標目錄值為 C:\Data\Common\。 如果未設定,目標目錄會採用DefaultDir欄位所指定的名稱。 在此情況下,目標目錄為 C:\Program Files\Target\App\。
相同的過程適用於第三筆記錄。 如果未設定 EXEDIR 和 DLLDIR,則目標目錄為 C:\Program Files\Target\App\Bin,而來源目錄為 \\applications\source\App\Bin\。
第四筆記錄使用 DesktopFolder 屬性。 如果使用者桌面的位置是 C:\Winnt\Profiles\User\Desktop\,目標目錄會解析為 C:\Winnt\Profiles\User\Desktop\。 來源目錄會解析為 \\applications\source\Desktop\。
在 Directory 數據表的 DefaultDir 數據行中,還有兩個額外的語法功能。 針對非根目錄,在 DefaultDir 資料行中輸入句號表示該目錄應該位於其父目錄中,而不應該有子目錄。 若要指定不同的來源和目標目錄路徑,請使用冒號分隔 DefaultDir 數據行中的目標和來源路徑,如下所示:[targetpath]:[sourcepath]。 這些功能可以一起使用,將層級新增至單一目錄的來源或目標路徑。 請參閱下列目錄數據表範例。
目錄 | 目錄_父層 | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
MyAppDir | TARGETDIR | MyApp |
BinDir | MyAppDir | 箱 |
Binx86Dir | BinDir | .:x86 |
BinAlphaDir | BinDir | 。:阿爾法 |
MyAppDir、BinDir、Binx86Dir 和 BinAlphaDir 數據列的來源和目標路徑解析如下。
記錄 | 目標路徑 | 來源路徑 |
---|---|---|
MyAppDir: | [TARGETDIR]MyApp | [SourceDir]MyApp |
BinDir: | [TARGETDIR]MyApp\Bin | [SourceDir]MyApp\Bin |
Binx86Dir: | [TARGETDIR]MyApp\Bin | [SourceDir]MyApp\Bin\x86 |
BinAlphaDir: | [TARGETDIR]MyApp\Bin | [SourceDir]MyApp\Bin\Alpha |
注意
Windows Installer 不支援 Alpha 平臺。