2010-04-16 11 views
21

Que fait exactement le runtime .NET 4.0 si un exécutable .NET 4.0 contient une référence à un assembly .NET 2.0?Que se passe-t-il lorsque .NET 4.0 fait référence à un assembly .NET 2.0?

L'assembly .NET 2.0 s'exécute avec l'environnement d'exécution .NET 4.0 (en d'autres termes, .NET 4.0 doit être compatible à 100% avec .NET 2.0) ou le processus héberge-t-il l'environnement d'exécution .NET 2.0 et certains magie arrive à rendre les types .NET 2.0 accessibles de manière transparente à mon code basé sur .NET 4.0?

Répondre

17

Ils disent que cela devrait fonctionner correctement. Découvrez this.

+0

Merci. Cela semble que le code sera effectivement exécuté par le .NET 4.0 CLR s'il est chargé par une application .NET 4.0. Toujours à la recherche d'une déclaration officielle solide à ce sujet sur MSDN, mais ne l'ai pas encore déterré. – Cygon

+1

Je qualifie cela de réponse parce que cela me mène à l'information la plus utile sur le sujet. Lorsqu'une application .NET 4.0 charge un assembly .NET 2.0, elle est en effet exécutée dans le .NET 4.0 CLR. Il existe même des différences subtiles (le plus important étant le modèle de sécurité). Les assemblys .NET 2.0 ne fonctionnent pas sans modifications supplémentaires du fichier app.config (log4net étant l'un de ces assemblys de problèmes). – Cygon