IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Référencer DLL C#4 dans appli C#2


Sujet :

Dotnet

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut Référencer DLL C#4 dans appli C#2
    Bonjour,

    Je dois réaliser une DLL de framework pour mon client. Ce framework dois exploiter certaines méthodes du C#4 mais pas partout.

    Certaines applications sont en C#2 et d'autres en C#4.

    Est-il possible de réaliser le framework en C#4 et de le référencer dans l'application en C#2?
    En prenant en compte que nous n'appelerions que les méthodes codées en C#2.

    Merci pour votre avis.

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 979
    Points
    14 979
    Par défaut
    Salut

    Ce n'est pas possible de référencer une DLL d'un framework d'une version supérieure. Après, en chargeant dynamiquement la DLL et à condition que le framework de version supérieure soit installé, c'est possible d'appeler les méthodes qui sont dedans, mais c'est selon moi du bricolage.

    C'est plus simple de compiler deux versions différentes de ta DLL, une en 2 et une en 4 . C'est possible avec deux projets qui utilisent les mêmes fichiers, et dans celui en 2 tu ajoutes une condition de compilation via une directive préprocesseur qui te permettra de "désactiver" le code 4 non compatible.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    Merci pour ta réponse Max.


    Je m'y attendais un peux mais bon...

    Un chargement dynamique signifierais une perte de l'intellisense & co je présume?
    On serais en mode 100% Reflection....en effet pas cool...


    Sympathique ton idée du double projet avec les sources mutualisés un petit lien symbolique fera cela très bien!

    Coté condition de compilation tu parles de "ProjectProperties/Build/Advanced/Language Version" ?
    J'ai une liste avec "default ; ISO-1 ; ISO-2 ; C# 3.0 ; C# 4.0 ; C# 5.0" sous VS2013


    Arf enfait non... https://msdn.microsoft.com/fr-fr/library/3sxhs2ty.aspx
    Rien d'automatique ^^'

  4. #4
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 979
    Points
    14 979
    Par défaut
    Salut

    Oui dans les propriétés de ton projet en .NET 2 tu définis ta directive (DOTNET_2 dans mon exemple) :

    Nom : PrtScr capture_2.jpg
Affichages : 127
Taille : 30,9 Ko

    Et dans le code tu l'utilises de la façon suivante, toujours dans ton projet en .NET 2 :

    Nom : PrtScr capture_5.jpg
Affichages : 140
Taille : 20,2 Ko

    Du coup dans ton projet en .NET 4 dans lequel ta directive n'est pas définie le code est accessible :

    Nom : PrtScr capture_6.jpg
Affichages : 147
Taille : 27,0 Ko

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    En effet, je connaissais cette fonctionnalité mais je n'avais plus souvenirs de son nom "directive préprocesseur"

    Maintenant je me lance dans une réflexion pour la mutualisation du code entre les projets, j'avais pensé utiliser des liens symboliques mais il y'a le quid des bin ; obj ; assemblyInfo

    c'est dangereux de mutualiser le assemblyInfo pour les 2 projets? les seuls différences étant le Titre et le Guid

  6. #6
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 979
    Points
    14 979
    Par défaut
    Salut.

    Citation Envoyé par TheBlackReverand Voir le message
    En effet, je connaissais cette fonctionnalité mais je n'avais plus souvenirs de son nom "directive préprocesseur"

    Maintenant je me lance dans une réflexion pour la mutualisation du code entre les projets, j'avais pensé utiliser des liens symboliques mais il y'a le quid des bin ; obj ; assemblyInfo

    c'est dangereux de mutualiser le assemblyInfo pour les 2 projets? les seuls différences étant le Titre et le Guid
    Je ne me souviens plus du tout précisément comment j'avais procédé Mais dans mon cas mes deux projets utilisent le même dossier racine et tout le reste, il n'y a que dans bin que j'ai deux dossiers Debug et deux Release (un par projet). Les deux assembly ont des noms différents mais le même AssemblyInfo (utilisation de la directive aussi dans ce fichier).

Discussions similaires

  1. Creation dll et utilisation dans appli C#
    Par moulefrite dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/08/2008, 09h46
  2. DLL MFC dans Appli C
    Par mastergoddot dans le forum MFC
    Réponses: 5
    Dernier message: 05/07/2007, 12h21
  3. Dll c++ natif dans appli .Net - Perte de pointeur
    Par jerome_t dans le forum C++/CLI
    Réponses: 10
    Dernier message: 31/05/2007, 08h26
  4. dll en .Net dans une appli en C++ MFC
    Par Nico_stras dans le forum C++/CLI
    Réponses: 1
    Dernier message: 13/04/2007, 07h47
  5. Liaison d'une dll Visual C++ dans un programme c++Builder
    Par Cyrilh7 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/11/2003, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo