Поделиться через


Использование таблицы каталогов

Таблица каталога указывает макет установки. Когда каталоги разрешаются во время действия 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.