使用 Directory 表
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\。
第一条记录的 Directory 字段指示根目标目录的位置。 在这种情况下,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\ 的第一条记录。 Directory 字段包含由作者定义属性,名为 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 列中的目标路径和源路径,如下所示:[目标路径]:[源路径]。 这些功能可以一起使用,以将级别添加到单个目录的源路径或目标路径。 请参阅 Directory 表的以下示例。
Directory | Directory_Parent | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
MyAppDir | TARGETDIR | MyApp |
BinDir | MyAppDir | 分箱 |
Binx86Dir | BinDir | .:x86 |
BinAlphaDir | BinDir | .:Alpha |
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 平台。