Один файл на компонент или несколько файлов на компонент? - PullRequest
64 голосов
/ 21 октября 2009

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

Ответы [ 2 ]

82 голосов
/ 22 октября 2009

Одной из причин "один файл на компонент" является упругость . При запуске приложения установщик Windows может проверить, отсутствует ли keypath какого-либо компонента. Если ключевой путь отсутствует, компонент переустанавливается / ремонтируется.

Если компонент имеет несколько файлов, тогда только один файл может быть ключевым путем. В wix вы указываете это, устанавливая KeyPath=yes для элемента File . Другие файлы не будут полностью защищены с помощью устойчивости установщика Windows. Они будут переустанавливаться только в том случае, если пропущен файл ключа.

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

7 голосов
/ 08 августа 2011

Я придерживаюсь подхода Microsoft, который также используется InstallShield: http://msdn.microsoft.com/en-us/library/aa368269(VS.85).aspx

Приведенная выше ссылка дает преимущества этого подхода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...