Организация приложений в компоненты

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

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

  • Никогда не создавайте два компонента, которые устанавливают ресурс с одинаковым именем и целевым расположением. Если ресурс должен дублироваться в нескольких компонентах, измените его имя или целевое расположение в каждом компоненте. Это правило должно применяться к приложениям, продуктам, версиям продуктов и компаниям.
  • Обратите внимание, что предыдущее правило означает, что два компонента не должны иметь одинаковый файл пути к ключу. Значение пути к ключу указывает на определенный файл или папку, принадлежащие компоненту, который установщик использует для обнаружения компонента. Если два компонента имеют один и тот же файл пути к ключу, установщик не сможет определить, какой компонент установлен. Однако два компонента могут совместно использовать папку пути к ключу.
  • Не создавайте версию компонента, несовместимую со всеми предыдущими версиями компонента. Компонент может использоваться другими приложениями, продуктами, версиями продуктов и компаниями. Вместо этого создайте новый компонент.
  • Не создавайте компоненты, содержащие ресурсы, которые необходимо установить в несколько каталогов в системе пользователя. Установщик устанавливает все ресурсы компонента в один каталог. Некоторые ресурсы невозможно установить в подкаталоги.
  • Не включайте более одного COM-сервера на каждый компонент. Если компонент содержит COM-сервер, это должен быть путь к ключу для компонента.
  • Не указывайте несколько файлов для каждого компонента в качестве целевого объекта для меню "Пуск" или ярлыка на рабочем столе.

При организации приложения в компоненты авторам пакетов может потребоваться добавить, удалить или изменить ресурсы в существующей установке. В этом случае автор должен решить, следует ли предоставлять ресурсы, внеся новый компонент или изменив существующие компоненты и изменив их в новую версию компонента. Так как при появлении нового компонента необходимо назначить уникальный код компонента, авторы должны определить, требуется ли изменение кода компонента для их изменений. Дополнительные сведения см. в разделах Изменение кода компонента, Что происходит, если правила компонентов нарушены? и Определение компонентов установщика.