Parallele Ausführung

Die parallele Ausführung bezeichnet die Möglichkeit, mehrere Versionen einer Anwendung oder einer Komponente auf demselben Computer auszuführen. Das bedeutet, dass Sie gleichzeitig mehrere Versionen der Common Language Runtime sowie mehrere Versionen von Anwendungen und Komponenten, die eine Version der Common Language Runtime verwenden, gleichzeitig auf demselben Computer ausführen können.

Die folgende Abbildung zeigt verschiedene Anwendungen, die auf demselben Computer zwei unterschiedliche Versionen der Common Language Runtime verwenden. Anwendungen A, B und C verwenden Common Language Runtime, Version 1.0, während Anwendung D die Version 1.1 verwendet.

Parallele Ausführung von zwei Versionen der Common Language Runtime

Parallele Ausführung

.NET Framework besteht aus der Common Language Runtime und etwa 20 Assemblies, die die API-Typen enthalten. Die Versionsnummern der Common Language Runtime und der .NET Framework-Assemblys sind voneinander unabhängig. So ist z. B. die Common Language Runtime Version 1.0 eigentlich Version 1.0.3705.0, während die Version 1.0 der .NET Framework-Assemblys eigentlich Version 1.0.3300.0 ist.

Die folgende Abbildung zeigt verschiedene Anwendungen, die auf demselben Computer zwei unterschiedliche Versionen einer Komponente verwenden. Anwendungen A und B verwenden Version 1.0 der Komponente, während Anwendung C Version 2.0 der gleichen Komponente verwendet.

Parallele Ausführung von zwei Versionen einer Komponente

Parallele Ausführung

Durch die parallele Ausführung können Sie besser steuern, an welche Version einer Komponente eine Anwendung gebunden wird und welche Version der Common Language Runtime eine Anwendung verwendet.

Vorteile der parallelen Ausführung

Vor der Entwicklung von Windows XP und .NET Framework traten DLL-Konflikte auf, da Anwendungen nicht zwischen inkompatiblen Versionen des gleichen Codes unterscheiden konnten. In einer DLL enthaltene Typinformationen waren lediglich an einen Dateinamen gebunden. Einer Anwendung war nicht bekannt, ob die in einer DLL enthaltenen Typen dieselben Typen waren, mit denen die Anwendung erstellt wurde. Dadurch konnten neue Versionen einer Komponente ältere Versionen überschreiben und ein ordnungsgemäßes Funktionieren von Anwendungen verhindern.

Die parallele Ausführung und .NET Framework bieten die folgenden Features zur Vermeidung von DLL-Konflikten:

  • Assemblys mit starkem Namen

    Die parallele Ausführung verwendet Assemblys mit starken Namen, um Typinformationen an eine bestimmte Version einer Assembly zu binden. Dadurch wird verhindert, dass eine Anwendung oder Komponente an eine ungültige Version einer Assembly gebunden wird. Assemblys mit starken Namen ermöglichen außerdem das Vorhandensein mehrerer Versionen einer Datei auf demselben Computer und deren Verwendung durch Anwendungen. Weitere Informationen finden Sie unter Assemblys mit starkem Namen.

  • Versionsabhängige Codespeicherung

    .NET Framework bietet versionsabhängige Codespeicherung im globalen Assemblycache. Der globale Asssemblycache ist ein Codecache für den gesamten Computer, der auf allen Computern vorhanden ist, auf denen .NET Framework installiert ist. Im Cache werden Assemblys anhand der Version, Kultur und Herstellerinformationen gespeichert, und es werden mehrere Versionen von Komponenten und Anwendungen unterstützt. Weitere Informationen finden Sie unter Globaler Assemblycache.

  • Isolation

    Mit .NET Framework können Sie Anwendungen und Komponenten erstellen, die isoliert ausgeführt werden. Isolation ist eine wesentliche Komponente der parallelen Ausführung. Sie umfasst sowohl die Erkennung der verwendeten Ressourcen als auch die zuverlässige gemeinsame Verwendung von Ressourcen durch mehrere Versionen einer Anwendung oder Komponente. Die Isolation umfasst außerdem das versionsspezifische Speichern von Dateien. Weitere Informationen zur Isolation finden Sie unter Richtlinien für die Erstellung von Anwendungen und Komponenten für die parallele Ausführung.

Versionskompatibilität

Die Versionen 1.0 und 1.1 von .NET Framework sind miteinander kompatibel. Eine mit .NET Framework, Version 1.0, erstellte Anwendung ist in Version 1.1 ausführbar, und eine mit .NET Framework, Version 1.1, erstellte Anwendung kann auch in Version 1.0 ausgeführt werden. Beachten Sie jedoch, dass die in Version 1.1 von .NET Framework neuen API-Funktionen nicht mit Version 1.0 von .NET Framework funktionieren. In Version 2.0 erstellte Anwendungen können nur mit Version 2.0 ausgeführt werden. Anwendungen für Version 2.0 können nicht mit Version 1.1 oder einer früheren Version ausgeführt werden.

Versionen von .NET Framework werden als eine abgeschlossene Einheit behandelt, die aus Common Language Runtime und den zugeordneten .NET Framework-Assemblys bestehen. Dieses Konzept wird als Assemblyvereinheitlichung bezeichnet. Assemblybindungen können umgeleitet werden, um andere Versionen von .NET Framework-Assemblys einzubeziehen, das Überschreiben der Standardassemblybindung kann jedoch riskant sein und muss vor der Bereitstellung gründlich getestet werden.

Verwandte Themen

Titel

Beschreibung

Feststellen der Laufzeitversionsinformationen

Beschreibt, wie die Common Language Runtime Informationen darüber ermittelt, welche Version der Laufzeit für eine Anwendung geladen werden soll.

Übersicht über die .NET Framework-Assemblyvereinheitlichung

Beschreibt, wie die Common Language Runtime die Verweise auf verschiedene Versionen von .NET Framework-Assemblys behandelt.

Bestimmen der zu ladenden Laufzeitversion

Erläutert, wie die Common Language Runtime bestimmt, welche Laufzeitversion für eine Anwendung geladen wird.

Umleitung der Assemblybindung

Beschreibt, wie eine Anwendung an eine bestimmte Version einer Assembly gebunden wird.

Teilweise gekennzeichnete Assemblyverweise und parallele Ausführung

Erläutert die Auswirkungen von teilweise gekennzeichneten Assemblyverweisen in Anwendungen, die in paralleler Ausführung verwendet werden sollen.

Herausgeberrichtliniendateien und parallele Ausführung

Bietet Informationen und Verfahren zur Verwendung von Herausgeberrichtliniendateien für die Umleitung von Assemblybindungen.

Satellitenassemblys und parallele Ausführung

Erläutert die Behandlung von Satellitenassemblys bei paralleler Ausführung.

Bestimmen der installierten .NET Framework-Version

Bietet Informationen über die Installation und Verwendung mehrerer Versionen von .NET Framework.

Gewusst wie: Verwenden einer Anwendungskonfigurationsdatei für die Ausrichtung auf eine .NET Framework-Version

Beschreibt das Erstellen einer Konfigurationsdatei, mit der eine Anwendung auf eine Version der Common Language Runtime ausgerichtet wird.

Erstellen mehrerer Versionen einer Anwendung oder Komponente

Bietet Informationen über das Erstellen und Bereitstellen von Anwendungen und Komponenten, die für die parallele Ausführung entworfen wurden.

Bestimmen einer Aktualisierungsstrategie für Anwendungen und Komponenten

Erläutert das Erstellen eines Dienstmodells für Komponenten und Anwendungen mit Versionsangabe.

Prozessinterne parallele Ausführung

Erläutert, wie mehrere CLR-Versionen mithilfe der prozessinternen parallelen Laufzeithostaktivierung in einem Prozess ausgeführt werden können.

Assemblys in der Common Language Runtime (CLR)

Bietet eine konzeptionelle Übersicht über Assemblys.

Anwendungsdomänen

Bietet eine konzeptionelle Übersicht über Anwendungsdomänen.

Verweise

<supportedRuntime>-Element