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

Windows Forms Discussion :

[C#][DLL] Inclure dépendance lors de la génération


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Par défaut [C#][DLL] Inclure dépendance lors de la génération
    Bonjour,

    J'ai créée un projet Class Librairy pour coder une dll. Cette dll a besoin d'autre dll pour fonctionner, j'ai donc créé les dépendances et tous marche bien.

    Sauf qu'à la génération de ma dll, il me copie également les dépendances, je me retrouve donc avec 3 fichiers dll, j'aimerais en avoir qu'un.
    Est il possible "d'inclure" les dll des dépendances dans la dll principale du projets ?

    Je suis allé voir du côté des propriétés des dépendances, j'ai joué un peu avec copie locale mais ça ne fait pas ce que je veux

    Si quelqu'un pouvait m'aider, merci d'avance.
    Fab

  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
    Bonjour

    De base cela n'est pas possible

    En effet, à partir du moment ou tu ajoutes des références à ton projet, ces
    dépendances vont etre vu comme des éléments externes de ton application
    ou de la librairie et donc, seront externes à ton assemblée.

    Pour remédier à cela, personnelllement, j'envisage "uniquement" 2 solutions
    (mais mes connaissances étant limitées, il y en a peut-etre d'autre)

    1/ Si tu as le code des dépendances, tu inclus "tout" le code dans ta librairie
    et donc, tu n'auras plus à faire appel à des dll externes... donc, tu auras tout
    dans la class Library... d'ou -> 1 fichier

    2/ C'est un peu vilain, mais j'ai déja fait cela : Si tes DLL sont "immuables",
    tu peux les ajouter en tant que ressource à ton projet... (visual studio va les transformer en tableau de byte[]).. et au démarrage de ton application,
    tu peux extraire les ressources (qui sont inclus dans la dll ou ton exe) et
    les écrires sur disque ou bien simplement, créer une assembly (ta dll) depuis
    un espace mémoire.. ainsi, soit tu auras des dll de dépendances copier
    physiquement dans ton répertoire (et donc visible par l'utilisateur)... soit
    juste les "charger" en mémoire

    Désolé, en dehors de ces deux solutions, je n'ai pas d'autres idées pour ce matin

    The Monz, Toulouse

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2004
    Messages : 24
    Par défaut
    Merci de ta réponse et de tes idées.

    J'ai continué à chercher mais toujours pas de solution en vue.

    N'ayant pas le code source des dlls, je ne peux envisager le point 1/ mais je vais de ce pas voir ce que je peux faire avec ta deuxième idée

    Merci bien, bonne journée

    Fab
    Ps : j'mets la discussion en résolus ?!

  4. #4
    Membre chevronné
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Par défaut
    Citation Envoyé par Dozer71
    Ps : j'mets la discussion en résolus ?!
    Je pense que tu peux la laissée NON RESOLU pour voir si d'autres solutions existes ...
    J'avoue que je suis aussi intéressé ....


    Mosco

  5. #5
    Membre éclairé

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Par défaut
    Bonjour,

    Si tu n'as pas le code source des dll, tu peux essayer avec relector pour les décompiler puis les inclure dans ton projet.
    Je cherche aussi une solution plus élégante mais surtout plus rapide, parce que les DLL que je veux utiliser sont elles même dépendantes d'autres. Je me retrouve avec 9 dll en tout à inclure.

    Bon courage !

  6. #6
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut merge,merge tools
    bonjour
    oh fusion qunad tu nous tiens.
    ici tu trouveras ton bonheur,tes dll meme 100 sans code source plus ton executable le tout "packaged in one exe".
    ce lien de microsoft ou tu trouveras ton bonheur:
    http://research.microsoft.com/en-us/...t/ilmerge.aspx
    Il s'appelles ILMerge.
    Bon code...

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/04/2013, 15h09
  2. Réponses: 2
    Dernier message: 25/02/2010, 15h52
  3. [JAXB][XSD] Problème lors de la génération des classes
    Par charlot44 dans le forum Persistance des données
    Réponses: 4
    Dernier message: 22/06/2005, 16h10
  4. [dll] inclure une dll
    Par baert dans le forum Autres éditeurs
    Réponses: 9
    Dernier message: 25/11/2003, 10h46

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