使用目錄資料表
Directory 資料表會指定安裝的版面配置。 在 CostFinalize 動作期間解析目錄時,Directory 資料表中的索引鍵會變成設定為目錄路徑 的屬性 。 請注意,安裝程式會將許多標準 屬性 設定為系統資料夾路徑。 如需設定為系統資料夾的屬性清單,請參閱 屬性參考 。
指定目錄目標位置的最佳方式是在安裝套件中撰寫 Directory 資料表 ,以提供本節所討論的正確位置。 如果需要在安裝時變更目錄位置,另請參閱:變更目錄的目標位置一節
以下是 Directory 資料表的範例。
Directory | Directory_Parent | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
EXEDIR | TARGETDIR | 應用程式 |
DLLDIR | EXEDIR | 量化 |
DesktopFolder | TARGETDIR | 桌面 |
Directory 資料表的每個資料列都指出來源和目標上的目錄。 例如,假設安裝套件位於 \\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]。 這些功能可以一起使用,將層級新增至單一目錄的來源或目標路徑。 請參閱下列目錄資料表範例。
Directory | Directory_Parent | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
MyAppDir | TARGETDIR | MyApp |
BinDir | MyAppDir | 量化 |
Binx86Dir | BinDir | .:x86 |
BinAlphaDir | BinDir | 。:阿 爾 法 |
MyAppDir、BinDir、Binx86Dir 和 BinAlphaDir 資料列的來源和目標路徑解析如下。
Record | 目標路徑 | 來源路徑 |
---|---|---|
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 平臺。