Что произойдет, если правила компонента будут нарушены?

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

В следующем списке описаны способы, которыми авторы иногда нарушают рекомендуемые правила компонентов и возможные последствия.

Автор добавляет ресурсы в компонент без изменения кода компонента.

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

Автор удаляет ресурсы из компонента, не изменяя код компонента.

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

Автор включает файл, несовместимый с предыдущими версиями без изменения кода компонента.

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

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

Автор включает один и тот же ресурс в два разных компонента.

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

  • Удаление любого из компонентов приведет к удалению ресурса и прерыванию работы другого компонента.
  • Механизм подсчета ссылок на компоненты поврежден.