none
Logiciel en .NET 1.0 et DLL en .NET 2..0 RRS feed

  • Question

  • Bonjour,

    j'ai réalisé une DLL compatible avec le Framework .NET 2.0 qui devait s'intégrer à un logiciel existant (dont je ne possède pas le code source) codé pour le Framework .NET 1.0 (ou 1.1 d'après ce que j'ai compris).

    Or cette DLL ne fonctionne pas et il s'agit clairement d'un problème de Framework.

    J'ai installé le framework .Net 2.0 mais cela ne fonctionne pas et si j'enlève le framework 1.0 (et le 1.1), l'application refuse de se lancer. (il me signale qu'il a besoin du framework)

    Questions :

    Une DLL en .NET 2.0 peut-elle être appelée par un logiciel en .Net 1.0 (si les deux frameworks sont installés sur la machine bien sur) ?

    Un logiciel en .Net 1.0 ne peut-il tourner avec seulement le framework .net 2.0 (compatibilité ascendante) ?

    Le message d'erreur me signalant le manque du framework 1.0 provient-il de windows ou du logiciel (ce qui serait bizarre puisque s'il manque le bon framework, le logiciel ne devrait pas fonctionner du tout) ?

    Merci d'avance.
    mercredi 22 juillet 2009 08:13

Réponses

  • Bonjour,

    le framework 1.x et >=2.0 sont bâtis sur des version différentes de la CLR.
    La CLR 1 pour les framework 1.x et la CLR 2 pour les framework 2.0, 3.0 et 3.5.

    C'est la CLR qui "execute" le code CIL de votre application; or la CLR 1 ne sait comment gérer les assembly générée pour la CLR 2.0. Ce qui est tout a fait logique car au moment de l'écriture de la CLR 1, la CLR 2 n'existait pas de facto => il n'y a pas de compatibilité descendante.

    Cependant il y a bien une compatibilité ascendante, car une application écrite avec le framework 2.0 peut utiliser des dll écrites en .NET 1.1.


    Une DLL en .NET 2.0 peut-elle être appelée par un logiciel en .Net 1.0 (si les deux frameworks sont installés sur la machine bien sur) ?


    Oui au travers d'un WebService par exemple, mais non pas en ajoutant une référence dans votre projet .NET 1.1


    Un logiciel en .Net 1.0 ne peut-il tourner avec seulement le framework .net 2.0 (compatibilité ascendante) ?


    Non c'est impossible, il n'y a pas de compatibilité descendante


    Le message d'erreur me signalant le manque du framework 1.0 provient-il de windows ou du logiciel (ce qui serait bizarre puisque s'il manque le bon framework, le logiciel ne devrait pas fonctionner du tout) ?


    Cela vient de votre executable qui dans ses premières instructions native va chercher la CLR sur votre système avant de lui passer la main afin d'exécuter le code managé.

    A mon sens d'après vos pré-requis, la solution la plus viable et de compiler votre assembly en 1.1
    Fab'
    mercredi 22 juillet 2009 09:15