Правила управления версиями файлов

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

  • Версия
  • Дата
  • Язык

Установщик использует эти правила только при попытке установить файл в расположение, которое уже содержит файл с тем же именем. В этом случае установщик Windows использует следующие правила, при прочих равных условиях, чтобы определить, следует ли устанавливать.

Побеждает самая высокая версия — при прочих равных условиях выигрывает файл с самой высокой версией, даже если файл на компьютере имеет самую высокую версию.

Win — файл с управлением версиями устанавливается поверх неверсивного файла.

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

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

Сохранить языки надмножества — сохраните файл, поддерживающий несколько языков, независимо от того, установлен ли он на компьютере.

Неверсийные файлы — это пользовательские данные. Если дата изменения позже даты создания файла на компьютере, не устанавливайте файл, так как пользовательские настройки будут удалены. Если даты Изменения и Создание совпадают, установите файл . Если дата создания позже даты изменения, файл считается неизменимым, установите файл.

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

Неверсийные файлы с помощью сопутствующих файлов — неверсийный файл, связанный с файлом с управлением версиями с помощью механизма-компаньона, соответствует правилам для файла с управлением версиями. Единственным исключением является то, что файл с версиями на компьютере и устанавливаемый файл версии имеют одинаковую версию и язык, но сопутствующий файл отсутствует на компьютере. В этом случае устанавливается дополнительный файл, даже если используется файл с версией на компьютере. Кроме того, если свойство REINSTALLMODE содержит параметры перезаписи более старых версий ("o" или "e"), а версия файла-компаньона равна файлу, уже размещенному на компьютере, устанавливается неверсивный файл, использующий сопутствующий файл.

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

Примеры формата, используемого для версий файлов, см. в разделе Тип данных Version . Дополнительные сведения см. в разделе Замена существующих файлов или Управление версиями файлов по умолчанию.