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 :

[DLL+EXE] Comment Inclure des DLL dans un EXE


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut [DLL+EXE] Comment Inclure des DLL dans un EXE
    Bonjour,

    Je suis dans un cas particulier d'ou mon besoin de faire un truc pas très bien:

    J'ai un Exe codé par moi qui a besoin de deux DLL (sdk Microsoft), tout est full .Net.

    J'aimerais ajouter ses DLL en ressources dans l'exe et les charger dynamiquement, le plus facilement possible.

    J'ai pensé les mettre dans les ressources, en guise de Binary files... mais après, comment je peux les charger dynamiquement ?

    Y a t il une meilleurs solution ?

    merci

  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
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    plusieurs solutions à priori :

    1 - Utiliser l'outil ILMerge qui te permet de fusionner tout cela en 1 seul exe

    2 - Mettre tes DLL en ressources, et ensuite, une fois que tu les as en ressources, tu peux par exemple les écrire sur l'emplacement ou se trouve ton exe... parce que le risque, c'est que si tes DLL sont des "plug-in", pas de soucis, mais si elles sont "linkées" à ton application, il va bien falloir que l'executable les trouvent, et je pense qu'il y a un risque qu'une erreur soit émise au démarrage de ton application parce que l'exe ne trouvera pas les dépendances (dll) auquel il est bindé...

    Après, tu peux t'amuser à te faire un loader qui "dézipperait" ton exe et ses dll...

    Ca existe en gratuit ce genre de chose.. c une espèce de zipper qui te créer un seul package complet et au lancement, "extrait" les documents, fichiers, etc... Et lance l'application !!!
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Je ne connaissais pas ILMerge ! je te remerci pour l'info


    theMonz31 merci du coup de main

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Tu sais si ca marche aussi pour du .Net 3.5 ?


    ILMerge runs in the v2.0 .NET Runtime, but it is also able to merge v1 or v1.1 assemblies. However it can merge PDB files only for v2 assemblies.

    Je ne me rappel pu de la version des DLL... avec de la chance c est du 2

  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
    Points : 5 195
    Points
    5 195
    Par défaut
    je n'ai rien vu sur le fait qu'ILMerge ne marcherait pas en 3.5... mais celà est à vérifier et à creuser !!!

    Pour info, tu as un soft, GILma de mémoire qui fournit une IHM pour piloter ILMerge plus simplement qu'en ligne de commande (et cet outil est open source)
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    theMonz31 j ai vu ca en effet, mais GILma n'avait pas l air super récent (v0.1 datant de 2005)

    y a aussi http://www.genetibase.com/cforce/nugenunify.php

    mais bon je ne suis pas réticent à la ligne de commande, surtout que dans le cas simple ca s'utilise comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ILMerge.exe App.exe Lib1.dll Lib2.dll -out:MergeApp.exe
    je mettrais à jour ce post pour vous dire ce qu'il en est!

    Merci ca m'a bien avancé

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    Bon ILMerge marche impec, j'avais un projet en 3.5 et 2 Libs en 2.0.

    La génération s'intègre parfaitement dans le script post-build !


    Donc merci à theMonz31 de m'avoir montré cet outil !


    Bonne journée à tous

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Points : 12
    Points
    12
    Par défaut
    Pour information, ça devrait également marcher avec .Net v4.0
    source: http://research.microsoft.com/en-us/...t/ILMerge.aspx

    Using ILMerge with v4.0

    ILMerge should work just fine with newer versions of .NET. Just use the option:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /targetplatform:v4,<path to your v4 framework directory>
    For version 3.5, you probably don't need to set the target platform, but you may need to add the v3.5 framework directory as a /lib option so that assemblies from there can be found. (Unless they're in the GAC in which case they'll be found anyway.)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/02/2006, 14h49
  2. [JAR][DLL][path] inclure des DLLs dans un jar
    Par blaz dans le forum Général Java
    Réponses: 5
    Dernier message: 28/07/2005, 12h29
  3. [C#] Comment utiliser des dll win 32 dans un projet .NET
    Par Mickey.jet dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 31/05/2005, 13h45

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