Действие 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 испытывает ошибку при замене старого файла, и пользователь решает игнорировать эту ошибку. По умолчанию установщик удаляет старый файл, прежде чем убедиться, что новый файл скопирован правильно.
Правила управления версиями файлов, используемые установщиком, см. в разделе Правила управления версиями файлов.