Que se passe-t-il si les règles des composants sont enfreintes ?

Dans certains cas, les créateurs peuvent décider qu’ils doivent enfreindre les règles de création de composants, comme indiqué dans Organisation des applications en composants et Modification du code des composants. Les créateurs doivent être conscients des conséquences possibles de procéder ainsi et garantir que leurs composants ne sont jamais installés là où ils peuvent endommager d’autres applications ou composants sur le système de l’utilisateur.

La liste suivante décrit les façons dont les auteurs créateurs enfreignent parfois les règles recommandées pour les composants et les conséquences possibles.

Un créateur ajoute des ressources à un composant sans modifier le code du composant.

  • Les produits installés avec l’ancien composant n’ont pas informations sur les ressources ajoutées dans leur base de données d’installation.
  • Si un nouveau produit qui a les ressources ajoutées et un ancien produit sont tous deux installés sur le même ordinateur, les ressources peuvent être laissées en place si le nouveau produit est désinstallé en premier.
  • Un ancien produit sans les ressources ajoutées ne peut pas réparer la version plus récente du composant. La réinstallation de l’ancien produit ne restaure pas les ressources ajoutées.

Un créateur supprime des ressources d’un composant sans modifier le code du composant.

  • Les produits installés avec le nouveau composant n’ont pas informations sur les ressources supprimées dans leur base de données d’installation.
  • Si un ancien produit ayant les informations sur les ressources et un nouveau produit sont tous deux installés sur le même ordinateur, les ressources peuvent être laissées en place si l’ancien produit est désinstallé en premier.
  • Un nouveau produit avec les ressources supprimées ne peut pas réparer la version plus ancienne du produit. La réinstallation du nouveau produit ne restaure pas les ressources supprimées.

Un créateur inclut un fichier qui est incompatible avec les versions précédentes sans modifier le code du composant.

Si un fichier incompatible est inclus dans un composant sans modifier le code du composant, le versioning par défaut du fichier fait que le programme d’installation remplace le fichier d’origine par le fichier incompatible plus récent. Ceci peut endommager les anciens produits nécessitant le fichier d’origine. Cela peut également empêcher le programme d’installation de réparer l’ancien produit, car la version du fichier de chemin de clé d’un composant détermine la version du composant. Si une version plus récente du fichier de chemin de clé est déjà installée, le programme d’installation n’installe pas une version plus ancienne du composant. Pour plus d’informations, consultez Règles de versioning des fichiers. Dans ce cas, le nouveau produit doit être supprimé avant que l’ancien produit puisse être réinstallé.

  • Le versioning des fichiers par défaut fait que le programme d’installation remplace le fichier d’origine par le fichier incompatible plus récent.
  • Les anciens produits qui nécessitent le fichier d’origine sont endommagés.
  • Cela peut également empêcher le programme d’installation de réparer l’ancien produit, car la version du fichier de chemin de clé d’un composant détermine la version du composant. Si une version plus récente du fichier de chemin de clé est déjà installée, le programme d’installation n’installe pas la version plus ancienne du composant. Pour plus d’informations, consultez Règles de versioning des fichiers. Dans ce cas, le nouveau produit doit être supprimé avant que l’ancien produit puisse être réinstallé.

Un créateur inclut la même ressource dans deux composants différents.

Si deux composants ont une ressource sous le même nom et le même emplacement, et que les deux composants sont installés dans le même dossier, la suppression de l’un ou l’autre des composants supprime la ressource commune, ce qui endommage le composant restant.

  • La désinstallation de l’un ou l’autre composant supprime la ressource et endommage l’autre composant.
  • Le mécanisme de comptage des références des composants est endommagé.