Секция [Dirs]

Эта секция является необязательной. Позволяет определить любые дополнительные каталоги, которые программа установки создаст автоматически помимо папки приложения, которую выбрал пользователь. Создание подкаталогов для папки приложения является общим случаем использования этой секции.

Заметьте, что вам не нужно явно создавать каталоги перед установкой в них файлов с помощью секции [Files]. Эта секция, прежде всего, полезна для создания пустых каталогов.

Пример секции [Dirs]:

[Dirs]
Name: "{app}\data"
Name: "{app}\bin"

В приведенном выше примере после того, как программа установки создаст каталог приложения, в ней будут созданы два подкаталога.

Ниже приведен список поддерживаемых параметров:

Name  (обязательный)

Имя создаваемого каталога, которое обычно начинается с одной из констант каталога.

Пример:
Name: "{app}\MyDir"
Attribs

Определяет дополнительные атрибуты для каталога. Допустимыми атрибутами являются следующие: readonly, hidden, system, notcontentindexed. Если этот параметр не указан, программа установки не назначает каталогу никаких специальных атрибутов.

Если каталог уже существует, заданные атрибуты будут объединены с уже существующими атрибутами каталога.

Пример:
Attribs: hidden system
Permissions

Определяет дополнительные разрешения для доступа к каталогу на основе ACL (список управления доступом). Не рекомендуется использовать этот параметр, если вы не знакомы с ACL, потому что любое его изменение может негативно повлиять на безопасность системы.

Для эффективной работы параметра каталог должен быть расположен в файловой системе, поддерживающей ACL (например NTFS), а текущий пользователь должен иметь возможность изменять разрешения каталога. Если эти условия не выполняются, никаких сообщений об ошибках показаны не будут и разрешения не вступят в силу.

Этот параметр должен использоваться только для каталогов приложения. Никогда не изменяйте ACL каталогов верхнего уровня, таких как {sys} или {commonpf}, иначе безопасность системы пользователя окажется под угрозой.

Кроме того, рекомендуется избегать использования этого параметра для предоставления доступа на запись в каталоги, содержащих программные файлы. Например, предоставление доступа everyone-modify к каталогу {app} позволит непривилегированным пользователям вмешиваться в программные файлы вашего приложения, что создаст потенциальную угрозу безопасности. (Тем не менее, вполне безопасно изменить разрешения для подкаталога в папке вашего приложения, который не содержит программных файлов, например, {app}\data.)

Указанные разрешения устанавливаются независимо от того, существовал ли каталог до установки.

Параметр может содержать один или более значений, разделённых пробелами, в следующем формате:

В секции [Dirs] поддерживаются следующие типы доступа:

full

Предоставляет разрешение "Полное управление", аналогичное modify (см. ниже), но дополнительно позволяет указанному пользователю/группе стать владельцем каталога и изменить его разрешения. Используйте как можно реже; обычно modify будет достаточно.

modify

Предоставляет разрешение "Изменить", которое позволяет указанному пользователю/группе читать, выполнять, создавать, изменять и удалять файлы в каталоге и его подкаталогах.

readexec

Предоставляет разрешение "Чтение и запуск", которое позволяет указанному пользователю/группе читать и выполнять файлы в каталоге и его подкаталогах.

Пример:
Permissions: users-modify
Flags

Этот параметр представляет собой набор дополнительных опций. Допускается использовать несколько опций, разделяя их пробелами. Поддерживаются следующие опции:

deleteafterinstall

Указывает программе установки создать обычный каталог, но затем, когда установка будет завершена (или прервана), удалить его, если он будет пуст. Этот флаг может быть полезным для извлечения временных данных, необходимых программе, выполняемой в секции [Run].

Этот флаг не приведёт к удалению каталогов, которые уже существовали до установки.

setntfscompression

Указывает программе установки включить NTFS сжатие каталога. Если по какой-либо причине применить состояние сжатия не удалось (например, если сжатие не поддерживается файловой системой), то никаких сообщений об ошибке показано не будет.

Если каталог уже существует, то состояние сжатия любых файлов, находящихся в каталоге, не будет изменено.

uninsalwaysuninstall

Указывает программе удаления всегда выполнять попытку удаления каталога, если он пуст. Обычно деинсталлятор пытается удалить каталог только в том случае, если он не существовал до начала установки.

uninsneveruninstall

Указывает программе удаления не выполнять попытку удаления каталога. По умолчанию деинсталлятор удаляет любой каталог, указанный в секции [Dirs], если он пуст.

unsetntfscompression

Указывает программе установки отключить NTFS сжатие каталога. Если по какой-либо причине применить состояние сжатия не удалось (например, если сжатие не поддерживается файловой системой), то никаких сообщений об ошибке показано не будет.

Если каталог уже существует, то состояние сжатия любых файлов, находящихся в каталоге, не будет изменено.

Пример:
Flags: uninsneveruninstall

Параметры секций [Components] и [Tasks]

Общие параметры