Freigeben über


Konzept der isolierten Anwendungen und der parallelen Assemblys

Eine Anwendung wird als isolierte Anwendung angesehen, wenn all ihre Komponenten parallele Assemblys sind. Eine parallele Assembly ist eine Ansammlung von Ressourcen, z. B. eine Gruppe von DLLs, Windows-Klassen, COM-Servern, Typbibliotheken oder Schnittstellen, die einer Anwendung zur Laufzeit zur Verfügung stehen. Im Normalfall besteht eine parallele Assembly aus einer oder mehreren DLLs. So enthält z. B. die Assembly der C-Laufzeitbibliothek die drei DLLs msvcr90.dll, msvcm90.dll und msvcp90.dll und wird von Anwendungen verwendet, wenn sie mit Funktionen aus der CRT-Bibliothek erstellt werden.

Freigegeben oder privat

Eine parallele Assembly kann entweder freigegeben oder privat sein. Freigegebene parallele Assemblys können von mehreren Anwendungen verwendet werden, die in ihren Manifesten eine Abhängigkeit von der Assembly angeben. Verschiedene Anwendungen, die zur selben Zeit ausgeführt werden, können mehrere Versionen paralleler Assemblys verwenden. Eine private Assembly ist eine Assembly, die zusammen mit einer Anwendung bereitgestellt wird und nur dieser Anwendung für den exklusiven Zugriff zur Verfügung steht. Private Assemblys werden in dem Ordner, der die ausführbare Datei der Anwendung enthält, oder in einem seiner Unterordner installiert.

Manifeste und Suchreihenfolge

Sowohl isolierte Anwendungen als auch parallele Assemblys werden von Manifesten beschrieben. Ein Manifest ist ein XML-Dokument, das entweder als externe XML-Datei vorliegt oder als Ressource in einer Anwendung oder Assembly eingebettet ist. Die Manifestdatei einer isolierten Anwendung wird zur Verwaltung der Namen und Versionen freigegebener paralleler Assemblys verwendet, an die die Anwendung zu Laufzeit gebunden werden muss. Das Manifest einer parallelen Assembly gibt den Namen, die Versionen, die Ressourcen sowie abhängige Assemblys der parallelen Assembly an. Das Manifest einer freigegebenen parallelen Assembly wird im Ordner WinSxS\Manifests installiert. Für private Assemblys wird empfohlen, das Manifest als Ressource mit der ID 1 in die DLL einzubetten. Die private Assembly kann denselben Namen wie die DLL besitzen. Weitere Informationen finden Sie unter Private Assemblys.

Zur Ausführungszeit verwendet Windows die Assemblyinformationen aus dem Anwendungsmanifest zur Suche und zum Laden der entsprechenden parallelen Assembly. Wenn eine isolierte Anwendung eine Assemblyabhängigkeit angibt, sucht das Betriebssystem zuerst unter den freigegebenen Assemblys im Ordner WinSxS nach der betreffenden Assembly. Wenn die benötigte Assembly nicht gefunden werden kann, sucht das Betriebssystem anschließend in der Ordnerstruktur des Anwendungsverzeichnisses nach einer privaten Assembly. Weitere Informationen finden Sie unter Assemblysuchsequenz.

Ändern von Abhängigkeiten

Die Abhängigkeiten von parallelen Assemblys können nach der Bereitstellung einer Anwendung mithilfe von Herausgeberkonfigurationsdateien und Anwendungskonfigurationsdateien geändert werden. Eine Herausgeberkonfigurationsdatei, auch Herausgeberrichtliniendatei genannt, ist eine XML-Datei, mit der Anwendungen und Assemblys global von der Verwendung einer Version einer parallelen Assembly auf die Verwendung einer anderen Version derselben Assembly umgeleitet werden können. Ein gutes Beispiel für das Ändern von Abhängigkeiten ist die Bereitstellung eines Bugfixes oder eines Sicherheitsupdates für eine bestimmte parallele Assembly. In diesem Fall kann der Herausgeber der Assembly alle Anwendungen auf die neue Version der Assembly umleiten. Eine Anwendungskonfigurationsdatei ist eine XML-Datei, die eine bestimmte Anwendung von der Verwendung einer Version einer parallelen Assembly auf eine andere zu verwendende Version derselben Assembly umleitet. Diese Datei kann verwendet werden, um eine bestimmte Anwendung auf eine andere Version einer parallelen Assembly als die in der globalen Herausgeberkonfigurationsdatei angegebene Version umzuleiten. Weitere Informationen finden Sie unter Konfiguration.

Visual C++-Bibliotheken

Bibliotheken wie ATL, MRC, CRT, die C++-Standardbibliothek, OpenMP und MSDIA werden als freigegebene parallele Assemblys im systemeigenen Assemblycache bereitgestellt. Standardmäßig enthalten alle mit Visual C++ erstellten Anwendungen ein in die endgültige Binärdatei eingebettetes Manifest, das die Abhängigkeiten dieser Binärdatei von den Visual C++-Bibliotheken beschreibt. Weitere Informationen zum Verständnis der Manifestgenerierung für Visual C++-Anwendungen finden Sie unter Manifestgenerierung für C/C++-Programme

Siehe auch

Weitere Ressourcen

Erstellen von isolierten Anwendungen und parallelen Assemblys (C/C++)