Was geschieht, wenn die Komponentenregeln verletzt werden?

In bestimmten Fällen können Autoren entscheiden, dass sie die Regeln zum Erstellen von Komponenten unterbrechen müssen, wie unter Organisieren von Anwendungen in Komponenten und Ändern des Komponentencodes beschrieben. Autoren müssen sich der möglichen Konsequenzen bewusst sein, dies zu tun, und müssen auf andere Weise garantieren, dass ihre Komponenten niemals installiert werden, wo sie andere Anwendungen oder Komponenten auf dem System des Benutzers beschädigen können.

In der folgenden Liste werden Möglichkeiten beschrieben, wie Autoren manchmal die empfohlenen Komponentenregeln und die möglichen Konsequenzen unterbrechen.

Ein Autor fügt einer Komponente Ressourcen hinzu, ohne den Komponentencode zu ändern.

  • Produkte, die mit der alten Komponente installiert wurden, enthalten keine Informationen zu den hinzugefügten Ressourcen in ihrer Installationsdatenbank.
  • Wenn sowohl ein neues Produkt mit den hinzugefügten Ressourcen als auch ein altes Produkt auf demselben Computer installiert sind, können die Ressourcen zurückgelassen werden, wenn das neue Produkt zuerst deinstalliert wird.
  • Ein altes Produkt ohne die hinzugefügten Ressourcen kann die neuere Version der Komponente nicht reparieren. Durch die Neuinstallation des alten Produkts werden die hinzugefügten Ressourcen nicht wiederhergestellt.

Ein Autor entfernt Ressourcen aus einer Komponente, ohne den Komponentencode zu ändern.

  • Produkte, die mit der neuen Komponente installiert wurden, enthalten keine Informationen zu den entfernten Ressourcen in ihrer Installationsdatenbank.
  • Wenn sowohl ein altes Produkt mit den Ressourceninformationen als auch ein neues Produkt auf demselben Computer installiert sind, können die Ressourcen zurückgelassen werden, wenn das alte Produkt zuerst deinstalliert wird.
  • Ein neues Produkt mit den entfernten Ressourcen kann die ältere Version des Produkts nicht reparieren. Durch die Neuinstallation des neuen Produkts werden die entfernten Ressourcen nicht wiederhergestellt.

Ein Autor schließt eine Datei ein, die mit früheren Versionen nicht kompatibel ist, ohne den Komponentencode zu ändern.

Wenn eine inkompatible Datei in einer Komponente enthalten ist, ohne den Komponentencode zu ändern, bewirkt die Standardversionsverwaltung der Datei, dass der Installer die ursprüngliche Datei mit der neueren inkompatiblen Datei überschreibt. Dies kann alte Produkte beschädigen, die die Originaldatei benötigen. Es kann auch verhindern, dass das Installationsprogramm das alte Produkt repariert, da die Version der Schlüsselpfaddatei einer Komponente die Version der Komponente bestimmt. Wenn bereits eine neuere Version der Schlüsselpfaddatei installiert ist, installiert das Installationsprogramm keine ältere Version der Komponente. Weitere Informationen finden Sie unter Dateiversionsverwaltungsregeln. In diesem Fall muss das neue Produkt entfernt werden, bevor das alte Produkt neu installiert werden kann.

  • Die Standardversionsverwaltung von Dateien bewirkt, dass das Installationsprogramm die ursprüngliche Datei mit der neueren inkompatiblen Datei überschreibt.
  • Alte Produkte, die die Originaldatei benötigen, sind beschädigt.
  • Es kann auch verhindern, dass das Installationsprogramm das alte Produkt repariert, da die Version der Schlüsselpfaddatei einer Komponente die Version der Komponente bestimmt. Wenn bereits eine neuere Version der Schlüsselpfaddatei installiert ist, installiert das Installationsprogramm keine ältere Version der Komponente. Weitere Informationen finden Sie unter Dateiversionsverwaltungsregeln. In diesem Fall muss das neue Produkt entfernt werden, bevor das alte Produkt neu installiert werden kann.

Ein Autor schließt dieselbe Ressource in zwei verschiedene Komponenten ein.

Wenn zwei Komponenten über eine Ressource unter demselben Namen und Speicherort verfügen und beide Komponenten im selben Ordner installiert sind, wird durch das Entfernen einer Komponente die gemeinsame Ressource entfernt, wodurch die verbleibende Komponente beschädigt wird.

  • Durch das Deinstallieren einer Komponente wird die Ressource entfernt und die andere Komponente unterbrochen.
  • Der Komponentenverweiszählermechanismus ist beschädigt.