Partager via


Compatibilité de versions dans le .NET Framework

La compatibilité descendante signifie qu'une application développée pour une version particulière d'une plateforme s'exécutera sur les versions ultérieures de cette plateforme. Le .NET Framework essaie d'optimiser la compatibilité descendante : le code source écrit pour une version du .NET Framework doit se compiler sur les versions ultérieures du .NET Framework, et les fichiers binaires qui s'exécutent sur une version du .NET Framework doivent se comporter de la même manière sur les versions ultérieures du .NET Framework.

Compatibilité des versions pour les applications

Par défaut, une application s'exécute sur la version du .NET Framework pour laquelle elle a été générée. Si cette version n'est pas présente et que le fichier de configuration de l'application ne définit pas les versions prises en charge, une erreur d'initialisation du .NET Framework peut se produire. Dans ce cas, la tentative d'exécuter l'application échouera.

Pour définir les versions spécifiques sur lesquelles votre application s'exécute, ajoutez un ou plusieurs éléments < supportedRuntime > au fichier de configuration de votre application. Chaque élément <supportedRuntime> fournit une liste des versions prises en charge de l'exécution ; la première spécifie la version préférée et la dernière correspond à la version la moins préférée.

Compatibilité des versions pour les composants

Une application peut contrôler la version du .NET Framework sur laquelle elle s'exécute, mais un composant ne le peut pas. Les composants et bibliothèques de classes sont chargés dans le contexte d'une application particulière, et s'exécutent donc automatiquement sur la version du .NET Framework sur lequel l'application s'exécute.

À cause de cette restriction, les garanties de compatibilité sont particulièrement importantes pour les composants. À partir du .NET Framework version 4, vous pouvez spécifier le degré auquel un composant est supposé rester compatible entre plusieurs versions en appliquant l'attribut System.Runtime.Versioning.ComponentGuaranteesAttribute à ce composant. Les outils peuvent utiliser cet attribut pour détecter des violations potentielles de la garantie de compatibilité dans les versions ultérieures d'un composant.

Compatibilité descendante et .NET Framework 4

Le .NET Framework 4 est à compatibilité descendante avec les applications générées avec les versions 1.1, 2.0, 3.0 et 3.5 du .NET Framework. En d'autres termes, les applications et composants créés avec les versions antérieures du .NET Framework fonctionneront sur le .NET Framework 4.

Toutefois, dans la pratique, cette compatibilité peut être arrêtée par des modifications apparemment sans importance au .NET Framework et des modifications des techniques de programmation. Par exemple, les améliorations des performances dans le .NET Framework 4 peuvent exposer une condition de concurrence critique qui ne s'est pas produite sur les versions antérieures. De la même façon, l'utilisation d'un chemin d'accès codé en dur aux assemblys .NET Framework, la comparaison d'égalité avec une version particulière du .NET Framework, et l'obtention de la valeur d'un champ privé à l'aide de la réflexion ne sont pas des pratiques à compatibilités descendante. De plus, chaque version du .NET Framework inclut des résolutions de bogue et des modifications relatives à la sécurité qui peuvent affecter la compatibilité de certains composants et applications.

Vous devez tester vos applications et composants .NET Framework pour vérifier qu'ils sont compatibles avec d'autres versions du .NET Framework. Pour vérifier qu'une application ou un composant s'exécute correctement sur le .NET Framework 4, utilisez la page .NET Framework 4 Application Compatibility Walkthrough.

Si votre application ou composant ne fonctionne pas comme prévu sur le .NET Framework 4, utilisez les listes de contrôle suivantes.

Pour les applications .NET Framework 2.0, 3.0 et 3.5 :

  • Consultez Problèmes de migration du .NET Framework 4 pour les modifications qui peuvent affecter votre application et appliquez la solution de contournement décrite.

  • Si vous recompilez le code source existant pour l'exécuter sur le .NET Framework 4 ou si vous développez une nouvelle version d'une application ou d'un composant qui cible .NET Framework 4 à partir d'une base de code source existante, consultez Éléments obsolètes dans le .NET Framework pour connaître les types et les membres obsolètes et appliquer la solution de contournement décrite. (Le code précédemment compilé continuera à s'exécuter sur des types et des membres marqués comme obsolètes.)

  • Si vous déterminez qu'une modification dans le .NET Framework 4 a endommagé votre application, consultez le Schéma des paramètres d'exécution pour déterminer si vous pouvez utiliser un paramètre d'exécution dans votre fichier de configuration de l'application pour restaurer le comportement précédent.

  • Si vous rencontrez un problème qui n'est pas documenté, classez un bogue Microsoft Connect et contactez netfxcf@microsoft.com avec le numéro de bogue.

Pour les applications .NET Framework 1.1 :

  • Consultez Problèmes de migration du .NET Framework 4 pour les modifications qui peuvent affecter votre application et appliquez la solution de contournement décrite.

  • Consultez Changes in .NET Framework 3.5 SP1 et Changes in .NET Framework 2.0 pour toute modification apportée à ces versions.

  • Si vous recompilez le code source existant pour l'exécuter sur le .NET Framework 4 ou si vous développez une nouvelle version d'une application ou d'un composant qui cible .NET Framework 4 à partir d'une base de code source existante, consultez Éléments obsolètes dans le .NET Framework pour connaître les types et les membres obsolètes et appliquer la solution de contournement décrite. (Le code précédemment compilé continuera à s'exécuter sur des types et des membres marqués comme obsolètes.)

  • Si vous déterminez qu'une modification dans le .NET Framework 4 a endommagé votre application, consultez le Schéma des paramètres d'exécution pour déterminer si vous pouvez utiliser un paramètre d'exécution dans votre fichier de configuration de l'application pour restaurer le comportement précédent.

  • Si vous rencontrez un problème qui n'est pas documenté, classez un bogue Microsoft Connect et contactez netfxcf@microsoft.com avec le numéro de bogue.

Compatibilité et exécution côte à côte

Si vous ne pouvez pas trouver de solution de contournement appropriée pour votre problème, souvenez-vous que le .NET Framework 4 s'exécute côte à côte avec les versions 1.1, 2.0 et 3.5. Vous pouvez installer la version appropriée du .NET Framework sur l'ordinateur cible pour exécuter l'application dans l'environnement idéal. Pour plus d'informations sur l'exécution côte à côte, consultez Exécution côte à côte.

Voir aussi

Concepts

Nouveautés de .NET Framework 4

Autres ressources

Éléments obsolètes dans le .NET Framework

Politique de support (Support Lifecycle Policy) pour Microsoft .NET Framework

Problèmes de migration du .NET Framework 4

Historique des modifications

Date

Historique

Motif

Août 2010

Notez qu'une erreur d'initialisation .NET Framework se produit si une version prise en charge du .NET Framework n'est pas installée.

Résolution des bogues de contenu.