Isolierte Komponenten

Ersteller von Installationspaketen können festlegen, dass der Installer die freigegebenen Dateien (häufig freigegebene DLL-Dateien) einer Anwendung in den Ordner der Anwendung und nicht an einen freigegebenen Speicherort kopiert. Dieser private Satz von Dateien (DLLs) wird dann nur von der Anwendung verwendet. Diese Art des Isolierens der Anwendung zusammen mit ihren freigegebenen Komponenten hat die folgenden Vorteile:

  • Die Anwendung verwendet immer die Versionen der freigegebenen Dateien, mit denen sie bereitgestellt wurde.
  • Die Installation der Anwendung überschreibt die anderen Versionen der freigegebenen Dateien von anderen Anwendungen nicht.
  • Nachfolgende Installationen anderer Anwendungen, die andere Versionen der freigegebenen Dateien verwenden, können die von dieser Anwendung verwendeten Dateien nicht überschreiben.

Da die aktuelle COM-Implementierung für jedes CLSID/Context-Paar einen einzigen vollständigen Pfad in der Registrierung speichert, sind alle Anwendungen dazu gezwungen, dieselbe Version einer freigegebenen DLL zu verwenden. Damit eine Anwendung eine private Kopie eines COM-Servers behalten kann, überprüft das Systemladeprogramm von Windows 2000, ob im Ordner der Anwendung eine LOCAL-Datei vorhanden ist. Wenn das Systemladeprogramm eine LOCAL-Datei erkennt, ändert es die Suchlogik so ab, dass DLL-Dateien bevorzugt werden, die sich im selben Ordner wie die Anwendung befinden.

Wenn der Windows Installer die Aktion IsolateComponents ausführt, werden die Dateien der Komponente (häufig eine freigegebene DLL-Datei), die in der Spalte „Component_Shared“ der Tabelle „IsolateComponent“ angegeben sind, in denselben Ordner kopiert, in dem sich die Komponente befindet (häufig eine EXE-Datei), wie in der Spalte „Component_Application“ angegeben. Der Installer erstellt in diesem Verzeichnis eine Datei mit einer Länge von null Bytes und dem kurzen Dateinamen der Schlüsseldatei für „Component_Application“ (in der Regel stimmt der Name mit dem der EXE-Datei der Anwendung überein) und der Endung .LOCAL. Der Installer verwendet die Registrierung für die Komponente an ihrem freigegebenen Speicherort und schreibt keine Registrierungsinformationen für die Kopie der Komponente an den privaten Speicherort.

Weitere Informationen finden Sie unter