Использование таблицы каталогов
Таблица каталога указывает макет установки. Когда каталоги разрешаются во время действия CostFinalize, ключи в таблице каталогов устанавливаются как свойства в виде путей к каталогу. Обратите внимание, что установщик задает ряд стандартных свойств пути к системным папкам. Обратитесь к справочнику по свойствам для получения списка свойств, установленных в системных папках.
Лучший способ указать целевое расположение каталога — создать таблицу каталогов в пакете установки, чтобы указать правильное расположение, как описано в этом разделе. Если необходимо изменить расположение каталога во время установки, см. также раздел: изменение целевого расположения для каталога
Ниже приведен пример таблицы каталогов.
Каталог | Directory_Parent | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
EXEDIR | TARGETDIR | Приложение |
DLLDIR | EXEDIR | Бункер |
DesktopFolder | TARGETDIR | Рабочий стол |
Каждая строка таблицы каталога указывает каталог как в источнике, так и в целевом объекте. Например, предположим, что пакет установки находится в папке \\applications\source\. Так как поле Directory_Parent первой строки равно NULL, эта запись указывает корневые каталоги для источника и целевого объекта. Для источника значение этого каталога присваивается полем DefaultDir. Свойство SourceDir по умолчанию указывает расположение пакета установки. Таким образом, если свойство SourceDir не переопределяется, корневой каталог источника — \\applications\source\.
Поле каталога первой записи указывает расположение корневого целевого каталога. В этом случае значение свойства TARGETDIR указывает этот каталог. Как правило, значение свойства TARGETDIR устанавливается в командной строке или через пользовательский интерфейс. В этом случае предположим, что свойство TARGETDIR имеет значение C:\Program Files\Target\.
Для второй записи поле Directory_Parent не равно нулю. Таким образом, эта запись указывает не корневой каталог для источника и целевого объекта. Для каталога, отличного от корневого источника, исходный каталог, указанный записью, описанной в поле 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\.
В столбце 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.