Что произойдет, если правила компонента будут нарушены?
В некоторых случаях авторы могут решить, что им нужно нарушать правила создания компонентов, как описано в разделе Организация приложений по компонентам и Изменение кода компонента. Авторы должны знать о возможных последствиях этого и в противном случае должны гарантировать, что их компоненты никогда не будут установлены там, где они могут повредить другие приложения или компоненты в системе пользователя.
В следующем списке описаны способы, которыми авторы иногда нарушают рекомендуемые правила компонентов и возможные последствия.
Автор добавляет ресурсы в компонент без изменения кода компонента.
- Продукты, установленные со старым компонентом, не содержат сведений о добавленных ресурсах в базе данных установки.
- Если на одном компьютере установлены как новый продукт с добавленными ресурсами, так и старый продукт, ресурсы могут быть оставлены после удаления нового продукта.
- Старый продукт без добавленных ресурсов не может восстановить более новую версию компонента. При переустановке старого продукта добавленные ресурсы не восстанавливаются.
Автор удаляет ресурсы из компонента, не изменяя код компонента.
- Продукты, установленные с новым компонентом, не содержат сведений об удаленных ресурсах в базе данных установки.
- Если на одном и том же компьютере установлены и старый продукт, и новый продукт, ресурсы можно оставить без изменений, если старый продукт будет удален первым.
- Новый продукт с удаленными ресурсами не может восстановить старую версию продукта. При переустановке нового продукта удаленные ресурсы не восстанавливались.
Автор включает файл, несовместимый с предыдущими версиями без изменения кода компонента.
Если несовместимый файл включен в компонент без изменения кода компонента, управление версиями файлов по умолчанию приводит к тому, что установщик перезапишет исходный файл более последним несовместимым файлом. Это может привести к повреждению старых продуктов, требующих исходного файла. Это также может помешать установщику восстановить старый продукт, так как версия файла пути к ключу компонента определяет версию компонента. Если уже установлена более новая версия файла пути к ключу, установщик не устанавливает более раннюю версию компонента. Дополнительные сведения см. в разделе Правила управления версиями файлов. В этом случае новый продукт необходимо удалить, прежде чем старый продукт можно будет переустановить.
- Управление версиями файлов по умолчанию приводит к тому, что установщик перезаписывает исходный файл на более новый несовместимый файл.
- Старые продукты, которым требуется исходный файл, повреждены.
- Это также может помешать установщику восстановить старый продукт, так как версия файла пути к ключу компонента определяет версию компонента. Если более новая версия файла пути к ключу уже установлена, установщик не устанавливает старую версию компонента. Дополнительные сведения см. в разделе Правила управления версиями файлов. В этом случае новый продукт необходимо удалить, прежде чем старый продукт можно будет переустановить.
Автор включает один и тот же ресурс в два разных компонента.
Если у двух компонентов есть ресурс с одинаковым именем и расположением и оба компонента установлены в одну папку, то при удалении одного из компонентов общий ресурс удаляется, что приводит к повреждению оставшегося компонента.
- Удаление любого из компонентов приведет к удалению ресурса и прерыванию работы другого компонента.
- Механизм подсчета ссылок на компоненты поврежден.