Kompatibilität von .NET Framework-Versionen

Aktualisiert: August 2010

Abwärtskompatibilität bedeutet, dass eine für eine bestimmte Version einer Plattform entwickelte Anwendung auf höheren Versionen dieser Plattform ausgeführt wird. Bei .NET Framework wird versucht, die Abwärtskompatibilität zu maximieren: Für eine Version von .NET Framework geschriebener Quellcode wird auf höheren Versionen von .NET Framework kompiliert, und Binärdateien, die auf einer Version von .NET Framework ausgeführt werden, verhalten sich auch auf höheren Versionen von .NET Framework gleich.

Versionskompatibilität für Anwendungen

Standardmäßig wird eine Anwendung unter der Version von .NET Framework ausgeführt, für die sie erstellt wurde. Wenn diese Version nicht vorhanden ist und die Anwendungskonfigurationsdatei keine unterstützten Versionen definiert, tritt möglicherweise ein .NET Framework-Initialisierungsfehler auf. In diesem Fall schlägt der Versuch fehl, die Anwendung auszuführen.

Fügen Sie der Konfigurationsdatei der Anwendung ein oder mehrere <supportedRuntime>-Elemente hinzu, um die speziellen Versionen zu definieren, auf denen die Anwendung ausgeführt wird. Jedes <supportedRuntime>-Element führt eine unterstützte Version der Laufzeit auf. Dabei gibt das erste Element die bevorzugte Version der Laufzeit an und das letzte die am wenigsten bevorzugte Version.

Versionskompatibilität für Komponenten

Eine Anwendung kann die Version von .NET Framework steuern, unter der sie ausgeführt wird. Eine Komponente kann das jedoch nicht. Komponenten und Klassenbibliotheken werden in den Kontext einer bestimmten Anwendung geladen und werden daher automatisch unter der Version von .NET Framework ausgeführt, unter der die Anwendung ausgeführt wird.

Wegen dieser Einschränkung sind Kompatibilitätsgarantien für Komponenten besonders wichtig. Angefangen bei .NET Framework, Version 4 können Sie den Grad angeben, mit dem die Kompatibilität einer Komponente über mehreren Versionen erwartet werden kann. Dazu wenden Sie das System.Runtime.Versioning.ComponentGuaranteesAttribute-Attribut auf diese Komponente an. Tools können mithilfe dieses Attributs potenzielle Verletzungen der Kompatibilitätsgarantie in zukünftigen Versionen einer Komponente erkennen.

Abwärtskompatibilität und .NET Framework 4

.NET Framework 4 ist mit Anwendungen abwärtskompatibel, die mit .NET Framework, Versionen 1.1, 2.0, 3.0 und 3.5 erstellt wurden. Das heißt, Anwendungen und Komponenten, die mit früheren Versionen von .NET Framework erstellt wurden, funktionieren unter .NET Framework 4.

In der Praxis kann diese Kompatibilität jedoch schon von scheinbar belanglosen Änderungen in .NET Framework und von Änderungen in den Programmierverfahren aufgehoben werden. Leistungsverbesserungen an .NET Framework 4 können z. B. eine Racebedingung mit sich bringen, die unter früheren Versionen nicht aufgetreten ist. Auf ähnliche Weise sind das Verwenden eines hartcodierten Pfads zu .NET Framework-Assemblys, das Ausführen eines Gleichheitsvergleich mit einer bestimmten Version von .NET Framework und das Abrufen des Werts eines privaten Felds mithilfe einer Reflektion keine abwärtskompatiblen Maßnahmen. Außerdem schließt jede Version von .NET Framework Fehlerkorrekturen und sicherheitsbezogene Änderungen ein, die sich auf die Kompatibilität von einigen Anwendungen und Komponenten auswirken können.

Sie sollten die .NET Framework-Anwendungen und -Komponenten testen, um sicherzustellen, dass sie mit anderen Versionen von .NET Framework kompatibel sind. Verwenden Sie zum Sicherzustellen, dass eine Anwendung oder eine Komponente erfolgreich unter .NET Framework 4 ausgeführt werden kann die exemplarische Vorgehensweise zur .NET Framework 4-Anwendungskompatibilität.

Wenn die Anwendung oder Komponente nicht wie erwartet unter .NET Framework 4 funktioniert, verwenden Sie die folgenden Prüflisten.

Für Anwendungen, die auf .NET Framework 2.0, 3.0 oder 3.5 basieren:

  • Überprüfen Sie Migrationsprobleme in .NET Framework 4 auf Änderungen, die sich auf die Anwendung auswirken könnten, und umgehen Sie das jeweilige Problem wie beschrieben.

  • Wenn Sie vorhandenen Quellcode neu kompilieren, sodass er unter .NET Framework 4 ausgeführt werden kann, oder wenn Sie eine neue Version einer Anwendung oder einer Komponente entwickeln, die basierend auf vorhandenem Quellcode auf .NET Framework 4 ausgerichtet ist, überprüfen Sie Veraltete Elemente in .NET Framework auf veraltete Typen und Member, und wenden Sie die beschriebene Problemumgehung an. (Bereits kompilierter Code wird weiterhin mit Typen und Membern ausgeführt, die als veraltet markiert wurden.)

  • Wenn Sie feststellen, dass eine Änderung in .NET Framework 4 das ordnungsgemäße Funktionieren der Anwendung verhindert hat, überprüfen Sie im Schema für Laufzeiteinstellungen, ob Sie eine Laufzeiteinstellung in der Anwendungskonfigurationsdatei verwenden können, um das vorherige Verhalten wiederherzustellen.

  • Wenn ein Problem auftritt, das nicht dokumentiert wird, melden Sie den Fehler bei Microsoft Connect, und wenden Sie sich mit der Fehlernummer an netfxcf@microsoft.com.

Für Anwendungen, die auf .NET Framework 1.1 basieren:

  • Überprüfen Sie Migrationsprobleme in .NET Framework 4 auf Änderungen, die sich auf die Anwendung auswirken könnten, und umgehen Sie das jeweilige Problem wie beschrieben.

  • Überprüfen Sie Änderungen in .NET Framework 3.5 SP1 und Änderungen in .NET Framework 2.0 auf Änderungen, die in diesen Versionen vorgenommen wurden.

  • Wenn Sie vorhandenen Quellcode neu kompilieren, sodass er unter .NET Framework 4 ausgeführt werden kann, oder wenn Sie eine neue Version einer Anwendung oder einer Komponente entwickeln, die basierend auf vorhandenem Quellcode auf .NET Framework 4 ausgerichtet ist, überprüfen Sie Veraltete Elemente in .NET Framework auf veraltete Typen und Member, und wenden Sie die beschriebene Problemumgehung an. (Bereits kompilierter Code wird weiterhin mit Typen und Membern ausgeführt, die als veraltet markiert wurden.)

  • Wenn Sie feststellen, dass eine Änderung in .NET Framework 4 das ordnungsgemäße Funktionieren der Anwendung verhindert hat, überprüfen Sie im Schema für Laufzeiteinstellungen, ob Sie eine Laufzeiteinstellung in der Anwendungskonfigurationsdatei verwenden können, um das vorherige Verhalten wiederherzustellen.

  • Wenn ein Problem auftritt, das nicht dokumentiert wird, melden Sie den Fehler bei Microsoft Connect, und wenden Sie sich mit der Fehlernummer an netfxcf@microsoft.com.

Kompatibilität und parallele Ausführung

Wenn Sie keine geeignete Problemumgehung für das Problem finden können, denken Sie daran, dass .NET Framework 4 mit den Versionen 1.1, 2.0 und 3.5 parallel ausgeführt werden kann. Sie können die entsprechende Version von .NET Framework auf dem Zielcomputer installieren, um die Anwendung in der optimalen Umgebung auszuführen. Weitere Informationen über die parallele Ausführung finden Sie unter Parallele Ausführung.

Siehe auch

Konzepte

Neues in .NET Framework 4

Weitere Ressourcen

Veraltete Elemente in .NET Framework

Migrationsprobleme in .NET Framework 4

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

August 2010

Anmerkung, dass ein .NET Framework-Initialisierungsfehler auftritt, wenn eine unterstützte Version von .NET Framework nicht installiert ist.

Korrektur inhaltlicher Fehler.