Übersicht über die .NET Framework-Assemblyvereinheitlichung
.NET Framework besteht aus einer Version der Common Language Runtime und über zwanzig .NET Framework-Assemblys, die die Typbibliothek bilden. Diese .NET Framework-Assemblys werden von der Common Language Runtime als abgeschlossene Einheit behandelt. So besteht z. B. die Version 1.0 von .NET Framework aus der Laufzeitversion 1.0.3705.0 und den .NET Framework-Assemblys, Version 1.0.3300.0. Eine Anwendung oder Komponente, die eine bestimmte Version von .NET Framework unterstützt, verwendet die ausgelieferte Version der Common Language Runtime und die ausgelieferte Version der .NET Framework-Assemblys.
Die Common Language Runtime lädt standardmäßig nur .NET Framework-Assemblys, die zu der Laufzeitversion gehören, die in einen Prozess geladen wird. Wenn eine Anwendung gestartet wird, werden alle Verweise auf Codetypen, die von der Common Language Runtime ausgeführt werden, an .NET Framework-Assemblys mit derselben Versionsnummer wie die der in einem Prozess geladenen Laufzeit weitergeleitet. Diese Vereinheitlichung von .NET Framework-Assemblys verhindert, dass die Common Language Runtime Assemblys aus unterschiedlichen Versionen von .NET Framework lädt, es sei denn, die Common Language Runtime wird ausdrücklich dazu angewiesen.
Assemblyvereinheitlichung und Komponenten
Die Anwendung bestimmt, welche Version der Common Language Runtime sie verwendet. Die Vereinheitlichung umfasst alle Komponenten, die von einer Anwendung ggf. verwendet werden. Eine Anwendung kann eine verwendete Komponente umleiten, sodass diese mit einer bestimmten Laufzeitversion ausgeführt wird. Komponenten, die mit einer Laufzeitversion kompiliert sind, können an eine andere Version umgeleitet werden.
In der folgenden Abbildung verwendet die Anwendung MyApp die beiden Komponenten Comp A und Comp B. MyApp und Comp A wurden mit der Laufzeitversion 1.0 erstellt, daher enthalten sie statische Verweise auf die Laufzeitversion 1.0. Komponente Comp B enthält einen statischen Verweis auf eine .NET Framework-Assembly, die mit der Laufzeitversion 1.1 ausgeliefert wird. Aufgrund der Vereinheitlichung wird die Komponente aber umgeleitet, sodass bei der Ausführung die .NET Framework-Assembly verwendet wird, die mit der Laufzeitversion 1.0 ausgeliefert wird.
Umleiten der Assemblybindung durch Assemblyvereinheitlichung
Anwendungen können dieses Standardverhalten überschreiben, indem in der Konfigurationsdatei für jede Assembly Informationen zu Bindungsumleitungen bereitgestellt werden. Dadurch wird die Common Language Runtime so umgeleitet, dass eine bestimmte Version einer .NET Framework-Assembly ohne Beeinträchtigung der Ladevorgänge für andere .NET Framework-Assemblys verwendet wird. Weitere Informationen finden Sie unter Umleitung der Assemblybindung.
Hinweis |
---|
Assemblys in .NET Framework Version 1.0 sind nicht vereinheitlicht.Die Common Language Runtime kann nur angewiesen werden, eine nicht aus Version 1.0 stammende .NET Framework-Assembly zu verwenden, indem eine Konfigurationsdatei erstellt wird, die das appliesTo-Attribut im <assemblyBinding>-Element enthält.Weitere Informationen über das Umleiten von Assemblys in .NET Framework Version 1.0 finden Sie unter Ausrichten auf eine bestimmte .NET Framework-Version. |