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 :

[C#][.net 2003] Inclure ou non des dll suivant une compilation


Sujet :

C#

  1. #1
    Membre éprouvé Avatar de Orionmel
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 174
    Par défaut [C#][.net 2003] Inclure ou non des dll suivant une compilation
    Hello world,

    J'aimerais savoir s'il est possible dans un projet C# de créer plusieurs bibliothèques de classe puis, suivant la livraison (donc suivant le client), inclure ou non tel ou tel dll.

    Grosso modo, ce que j'aimerais faire, c'est créer une application générique, puis, suivant les besoins, créer tel ou tel dll stockant les fonctions propres à chaque client. Puis, lorsque je fais une livraison, ne livrer que la dll associé au client désiré sans les autres.

    J'aimerais que cela soit assez rapide à faire si possible

    Merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    oui c'est possible...

    Ca s'appelle soit plugIn, soit chargement dynamique d'une assemblée

    En fait, dans un programme C#, tu peux très bien monter une DLL de facon dynamique

    Apres, si dans ton programme, tu utilises cette DLL avec des fonctions communes à toutes les DLL De ce type, je te conseille de passer par une classe Interface...

    Dans l'interface, tu vas définir les méthodes exposées par ta dll

    Chaque dll implémentera cette interface..

    Et dans le code de l'application "générique" (comme tu le dis), tu travailleras
    avec un objet de type ITonInterfaceQueTuAsDefini

    il te suffira juste ensuite de charger dynamiquement la bonne dll

    The Monz, Toulouse

  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
    Par défaut
    Dans ce cas, il s'agit autant d'un problème de déploiement que de développement à proprement parler. Tout dépend de la façon dont tu as codé ton appli.
    Si ton appli est déjà capable de déterminer quelles sont les assemblies disponibles au lancement, alors il ne reste qu'à configurer le produit que tu utilises pour le déploiement.
    Sinon la solution de theMonz31 est une bonne piste de départ.
    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 éprouvé Avatar de Orionmel
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 174
    Par défaut
    Merci pour ces réponses

    Maintenant la question est comment monter des DLL dynamiquement dans mon code ? Je sais que les using se font en haut des classes, avant le code de ces dernières.

    Y'a t il un tutorial ? J'ai cherché sur le web et je n'ai pas trouvé de réponse

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    pour monter dynamiquement, une dll, tu fais

    Assembly.LoadAssembly(....);

    Ya des exemples dans le msdn.. .donc, c'est pas dur à trouver

    The Monz, Toulouse

  6. #6
    Membre éprouvé Avatar de Orionmel
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 174
    Par défaut
    Très bien je vais donc me pencher sur cette solution.

    Encore merci à tous

Discussions similaires

  1. Positionnement des DLL pour une applicatin C++Builder
    Par JeanNoel53 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/11/2010, 15h08
  2. Specifier le chemin des DLL pour une librairie
    Par Eco dans le forum Langage
    Réponses: 0
    Dernier message: 26/04/2010, 16h00
  3. comment intégrer des dll dans une application c#
    Par imene_t1 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/11/2007, 23h40
  4. Réponses: 3
    Dernier message: 01/12/2006, 20h31
  5. Réponses: 4
    Dernier message: 29/08/2006, 17h44

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