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


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

В таблице Directory указан макет установки. Когда каталоги разрешаются во время действия CostFinalize, ключи в таблице Directory становятся свойствами , для которых заданы пути к каталогам. Обратите внимание, что установщик задает ряд стандартных свойств для путей к системным папкам. Список свойств, для которых заданы системные папки, см. в справочнике по свойствам.

Лучший способ указать целевое расположение каталога — создать таблицу Directory в пакете установки, чтобы указать правильное расположение, как описано в этом разделе. Если необходимо изменить расположение каталога во время установки, см. также раздел Изменение целевого расположения каталога.

Ниже приведен пример таблицы каталогов.

Directory 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 не равно 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\.

В столбце 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.