2010-12-07 36 views
2

J'ai une bibliothèque externe. Net compilée avec .net framework 4 (son fournisseur a récemment été déplacé vers .net 4) Mon code s'exécute actuellement. net framework 3.5 Comment utiliser cette bibliothèque externe dans mon application? Déplacer l'application entière vers .net 4 a besoin de temps et de tests, alors peut-être que dans un futur je le ferai, mais maintenant, quelles sont les possibilités?comment intégrer la bibliothèque .net (.dll) à partir de la version supérieure avec les binaires de la version inférieure

Répondre

4

Il n'y a pas de possibilités, la version CLR fournie avec .NET 3.5 ne peut pas charger les assemblages 4.0. Le format des métadonnées a été modifié. Vous avez pour forcer votre application à utiliser la version .NET 4.0 CLR. Faites-le en le recompilant avec VS2010, en ciblant 4.0, ou en utilisant un fichier .config qui contient l'élément <requestedRuntime> pour demander "v4.0".

La compatibilité avec .NET 4.0 est excellente.

0

Bien que vous ne puissiez pas charger la DLL .Net directement, vous pouvez l'intégrer dans une interface COM et charger cette interface COM dans votre processus .Net 3.5.

Voir Using a .NET 4 Based DLL From a .NET 2 Based Application

Pour plus d'informations d'arrière-plan, Microsoft initialement ajouté In-Process Side-by-Side en .Net 4 pour mieux soutenir le scénario dans lequel une charge de compléments d'applications via COM, et les compléments ont été écrits avec différentes versions de. Net. La possibilité de charger .NET 4 DLL dans un processus .Net 3.5 est juste un effet secondaire agréable de cela.