共用方式為


使用目錄表

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