使用目錄資料表

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 平臺。