Одной из причин "один файл на компонент" является упругость . При запуске приложения установщик Windows может проверить, отсутствует ли keypath какого-либо компонента. Если ключевой путь отсутствует, компонент переустанавливается / ремонтируется.
Если компонент имеет несколько файлов, тогда только один файл может быть ключевым путем. В wix вы указываете это, устанавливая KeyPath=yes
для элемента File . Другие файлы не будут полностью защищены с помощью устойчивости установщика Windows. Они будут переустанавливаться только в том случае, если пропущен файл ключа.
Другая причина иметь «один файл на компонент» - это когда файлы устанавливаются в места, где они могут уже присутствовать (например, при обновлении приложения или при установке на c:\windows\system32
). Установщик Windows определяет, нужно ли устанавливать компонент, проверяя путь к ключу. Если путь к файлу является файлом, и файл уже существует (с той же версией или выше), то компонент не установлен. Это проблема, если другие файлы в компоненте действительно должны быть установлены / обновлены.