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 :

Référencer une classlib et l'utiliser alors qu'elle se situe dans un dossier différent


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Référencer une classlib et l'utiliser alors qu'elle se situe dans un dossier différent
    Bonjour à tous

    Alors, bien que je ne soit pas un nouvel inscrit, je ne crois pas avoir déjà posté ici je vais donc faire une courte présentation.
    Je suis développeur depuis 5 ans en SSII et cela fait maintenant 3 ans que je travail sur un projet perso entièrement développé en C# (Framework 2.0), j'ai donc un peu de bouteille.

    Depuis peu, j'ai un problème qui me fait tourner en rond malgré les heures de recherche sur google et sur tout les sites/forum de développement que je fréquente régulièrement.

    Je vais donc vous exposer ce problème.
    Je souhaite découper intelligemment une application que je projette de faire en différentes librairies de classe, et j'aimerai organiser ces différentes librairies dans divers dossiers en fonction de ce à quoi elles servent. (plugins, services de bases, couche de communication BDD/reseaux, etc)
    Jusqu'ici, référencer une classlib dans un exe ou dans un autre classlib ne pose pas de problème en soit, mais ce qui me gène, c'est que systématiquement, lorsqu'on ajoute une référence vers une classlib (dans VS.net 2005), les librairies mises en références sont systématiquement copiée dans le dossier de production de la librairie utilisatrice.
    Un bon schéma vaut mieux qu'une longue explication:
    - dossier principal de l'application
    ---- dossier de librairies communes
    -------lib1.dll
    -------lib2.dll
    ---- dossier de librairies référençant les librairies communes
    -------libAutre1.dll
    -------libAutre2.dll
    -------lib1.dll (copiée automatiquement lors de la génération, et indésirable à cette endroit)
    -------lib2.dll (copiée automatiquement lors de la génération, et indésirable à cette endroit)

    Je ne sais absolument si il est possible de référencer et d'utiliser des librairies qui ne se trouvent pas dans le dossier ou on les utilise (sans faire un système de plugin/addIn avec une interface générique en late binding), mais si il y a un moyen...j'aimerai bien le connaitre.

    D'avance merci à ceux qui pourront m'apporter des éléments de réponse.

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut

    Je pense que tu confond "dossier de production" et dossiers des projets constituant une solution

    Dans une solution découpée en projet ayant chacun un dossier il me semble naturel que les dll référencée soient recopiées dans les dossier de chaque projet, une dll n'a pas a connaitre l'emplacement physique des methodes référencées

    Mais en production rien ne t'empeche de recentraliser tout dans un meme dossier

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Salut

    Merci pour ta réponse.
    Alors non je ne confond pas le dossier de production et le dossier projet.
    Justement, quand on ajouter des références vers des classlib d'une même solution, les librairies ne sont pas copiée dans le dossier du projet "utilisateur".

    Mon problème est que j'aurai plusieurs types de plugins ayant des interfaces différentes, mais utilisant des librairies de classes communes, et que je souhaiterai justement que tout ne soit pas au même niveau.

    Je sais que System.Reflection permet de détecter "quoi" possède quelle interface, ce qui me permettrai de filtrer quelle DLL est de quel type et donc de charger correctement chaque type de plugin, mais si je pouvais éviter d'avoir 12000 DLL au même niveau, je préfèrerai (c'est un souhait, pas une exigence)

    En continuant mes recherches j'ai trouvé un premier élément de réponse avec AppDomain dans un article très intéressant (http://vincentlaine.developpez.com/t...domain/csharp/).

    Mais bon, cela ne répond pas a mon problèmes de références de classlib par d'autres classlib.

    Je continue mes recherches.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/03/2014, 20h51
  2. Réponses: 2
    Dernier message: 12/06/2011, 16h04
  3. Réponses: 1
    Dernier message: 25/06/2009, 11h18
  4. Réponses: 2
    Dernier message: 05/07/2008, 09h54
  5. Réponses: 2
    Dernier message: 07/11/2006, 10h34

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