Поделиться через


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

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

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

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

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

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

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

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

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

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

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

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

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