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

C# Discussion :

inclure une DLL dans une Librairie


Sujet :

C#

  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 inclure une DLL dans une Librairie
    Bonjour,

    Je crèè une Librairie(DLL) perso qui contient des fonctions pour gérè des serveurs de base de donnèes.

    SQL Serveur et Access sont près integret dans le Framework donc pas de soucis


    mais la difficultès est avec MySQL, en effet il y a une DLL propre a MySQL (Mysql.Data.DLL)

    donc il faudrais pour que mon projet soit utilisable avoir MaLibrairie.DLL + Mysql.Data.DLL


    y a t-il un moyen d'integrè Mysql.Data.DLL dans MaLibrairie.DLL afin que, lorsque je developpe un programme dans VS2005 et sans avoir installer le connecteur de MySQL je puisse integret seulement ma DLL perso et utiliser toutes les fonctions(meme MySQL)


    j'espaire etre clair....

    je crèè une DLL qui depend d'une autre DLL donc il faut que j'integre les 2 a mon projet

    je veut en integrè une seule

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Il est possible de fusionner plusieurs assemblies en une seule.

    Il existe quelques outils qui le font (le seul qui me vienne en tête là c'est {SmartAssembly} qui est payant et ne fait d'ailleurs pas que ça (c'est un obfuscateur)).

    Le problème c'est qu'il est possible que l'assembly de MySQL dépendent de DLL non managées. A ce moment là, même si les deux assemblies sont fusionnées, il manquera toujours ces composants non managés.

    Le mieux est donc de déployer automatiquement le MSI du driver MySQL via ton installateur et pas de fusionner les assemblies.

  3. #3
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    Il est possible de fusionner plusieurs assemblies en une seule.

    Il existe quelques outils qui le font (le seul qui me vienne en tête là c'est {SmartAssembly} qui est payant et ne fait d'ailleurs pas que ça (c'est un obfuscateur)).

    Le problème c'est qu'il est possible que l'assembly de MySQL dépendent de DLL non managées. A ce moment là, même si les deux assemblies sont fusionnées, il manquera toujours ces composants non managés.

    Le mieux est donc de déployer automatiquement le MSI du driver MySQL via ton installateur et pas de fusionner les assemblies.
    +1
    ClickOnce doit pouvoir le faire.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  4. #4
    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
    Bonjour


    je reviens sur le "Resolut" car j'ai peut etre une alternative mais j'aurais besoin de vos lumiere


    je me suis souvenus que les connecteur de MySQL sont en OpenSource je me suis donc permis de les telecharger


    j'ai actuellement ma solution "ClassServeur" qui contient 1 projet ClassServeur qui possede 1 espace de nom qui lui meme contient une classe MySQL, une SQL, une Access

    j'ai ajouter a ma solution le projet MySQL.Data qui est la source de la librairie Mysql.Data


    puis je maintenant me permettre de n'utiliser qu'une seul librairie???
    et comment utiliser depuis mon projet perso les fonctions et variable du projet Mysql.Data

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    D'après le site de MySQL :

    Fully-managed, does not utilize the MySQL client library.
    Donc pour MySQL ça fonctionne ... ce sera probablement pas le cas avec d'autres libs / fournisseurs d'accès.

    Ca s'utilise comme si c'était à l'extérieur de ton projet, les mêmes using.

    Je reste tout de même sceptique sur la méthode.

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    Je reste tout de même sceptique sur la méthode.
    +1

    A vrai dire, je ne vois pas l'intérêt d'introduire de telles complications.
    Quel est l'objectif ? (question récurrente qu'on pourrait retourner à plus de 50% des questions apparaissant sur ce forum ).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  7. #7
    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
    Enfait mon projet c'est fait petit a petit

    1) je travailler sur une interface pour me connecter sur Access, SQL Serveur, MySQL.
    j'avais une interface general et 3 modules qui contenait des fonctions(connection, execution de requete, liste des tables.....)


    2) j'ai crèè un projet Librairie ou j'ai deposer mes fonctions puis compiler tout sa en DLL
    ainsi lorsque je veut crèè une interface avec une base de donnèes j'integre ma DLL au projet et hop j'ai un panel de fonctions pré-coder

    3) un soucis se pose avec MySQL, il faut que j'installe sur les post le fichiers Mysql.Data qui est le connecteur .NET de MySQL

    je cherche donc a integrè le connecteur .NET (Mysql.Data.dll) dans ma librairie perso afin de n'utiliser qu'un seul fichier dll


    PS:j'ai pour objectif futur de completer cette DLL au maximum avec de plus en plus de fonctions et de type de serveur(oracle....) et de biensur la mettre sur internet

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par TheBlackReverand Voir le message
    E
    je cherche donc a integrè le connecteur .NET (Mysql.Data.dll) dans ma librairie perso afin de n'utiliser qu'un seul fichier dll
    Mais quel interêt de n'utiliser qu'une seule DLL ? à part, bien sur, créer délibérément des complications en cas d'évolution conjointe de MySql et de l'application ....

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  9. #9
    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
    bin c'est surtout le coter pratique que je cherche, une DLL pour tout fair

  10. #10
    Membre habitué Avatar de Nikoui
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Points : 142
    Points
    142
    Par défaut
    Dans ce cas fait un zip des 2 dll, tu n'aura alors qu'un seul fichier à déplacer.

    Ou mieux, comme proposé déjà plus haut : fait un vrai setup qui se chargera lui même d'installer ta librairie, ainsi que ses dépendances si nécessaire.

    Parce que la solution que tu proposes n'est pas spécialement "pratique", et plus ton projet va grossir, plus ça va empirer si tu veux absolument tout mettre dans un seul et unique projet.
    Working as designed

  11. #11
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Ce ne sera malheureusement pas possible pour tous les fournisseurs d'accès.

    Tu citais Oracle : il faut installer le client Oracle pour que la connexion fonctionne.

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par TheBlackReverand Voir le message
    bin c'est surtout le coter pratique que je cherche, une DLL pour tout fair
    Je ne vois aucun coté pratique à cela, tout le contraire.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

Discussions similaires

  1. [C#]Accéder à une methode dans une classe d'une DLL externe
    Par Greg34000 dans le forum Services Web
    Réponses: 3
    Dernier message: 28/03/2013, 15h54
  2. Réponses: 1
    Dernier message: 05/03/2012, 11h39
  3. Réponses: 6
    Dernier message: 02/11/2011, 09h34
  4. Réponses: 6
    Dernier message: 10/06/2010, 15h31
  5. utiliser une dll dans une dll
    Par anthonycosson dans le forum MFC
    Réponses: 2
    Dernier message: 09/05/2006, 21h42

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