Действие InstallFiles

Действие InstallFiles копирует файлы, указанные в таблице File, из исходного каталога в целевой каталог.

Ограничения последовательностей

Действие InstallFiles должно выполняться после действия InstallValidate и перед любыми зависимыми от файла действиями.

Сообщения ActionData

Поле Описание данных действия
 [1] Идентификатор установленного файла.
[6] Размер установленного файла в байтах.
[9] Идентификатор каталога, в котором содержится установленный файл.

 

Комментарии

Действие InstallFiles работает с файлами, указанными в таблице File. Каждый файл устанавливается в зависимости от состояния установки связанного с файлом компонента в таблице Компонент. Копирование разрешено только тем файлам, компоненты которых разрешаются в состояние msiInstallStatelocal .

Действие InstallFiles реализует следующие столбцы таблицы File.

  • В столбце FileName указывается имя целевого файла.
  • В столбце Версия указывается версия файла.
  • В столбце Атрибуты указываются биты флагов файла и атрибута установки.
  • В столбце Файл указывается уникальный маркер файла.
  • В столбце FileSize указывается размер несжатого файла в байтах.
  • В столбце Язык указан идентификатор языка файла.
  • Столбец Последовательности указывает порядковый номер на носителе.

Действие InstallFiles реализует следующие столбцы таблицы Component.

  • Столбец Directory_ указывает ссылку на элемент таблицы каталога .
  • Столбец Компонент указывает уникальное имя элемента компонента.

Указанный файл копируется только в том случае, если выполняется одно из следующих значений:

  • Файл в настоящее время не установлен на локальном компьютере.
  • Файл находится на локальном компьютере, но имеет более низкий номер версии, чем файл в таблице Файл.
  • Файл находится на локальном компьютере, но связанный номер версии отсутствует.

Исходный каталог для каждого копируемых файлов определяется sourceMode, который, в свою очередь, зависит от значения в столбце Cab таблицы Media. Полное описание режима источника см. в таблице Мультимедиа.

Если исходный каталог копируемых файлов находится на съемном носителе, таком как гибкий диск или компакт-диск, действие InstallFiles проверяет, вставлен ли соответствующий исходный носитель, прежде чем пытаться скопировать файл. InstallFiles выполняет поиск носителя того же съемного типа с меткой тома , которая соответствует значению, указанному в столбце VolumeLabel таблицы Media. Если найден соответствующий подключенный том, процесс копирования файлов продолжается. Если совпадение не найдено, диалоговое окно запрашивает у пользователя вставку соответствующего носителя. В этом случае в диалоговом окне используется имя носителя, найденное в столбце DiskPrompt таблицы Media.

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

Правила управления версиями файлов, используемые установщиком, см. в разделе Правила управления версиями файлов.