Mettre une dll dans l'exe d'une application ?? [Résolu]

Signaler
Messages postés
171
Date d'inscription
dimanche 6 février 2005
Statut
Membre
Dernière intervention
13 avril 2007
-
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour tout le monde !





J'ai développé un utilitaire ; pour lancer ce dernier, il suffit
d'avoir l'exe bien-sûr et un fichier dll. Pour des questions de
facilité de déploiement, j'aurais aimé n'avoir qu'il n'y ait qu'un seul
fichier, -l'exe-.





Est-ce que quelqu'un sait s'il est possible, de mettre cette dll à l'interieur même de mon exe ??





D'avance, merci

8 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
Salut, moui je pense que c'est possible.. Je promets rien.. mais normalement en transformant ta DLL et ton EXE en code MSIL avec l'utilitaire Ildasm.exe puis en recompilant les deux fichiers avec Ilasm.exe ca devrait marcher.. Il faudra peut etre apporter quelques modifs au manifeste.. mais ta DLL ne doit pas comporter de code natif ! Attention aux programmeurs en C++ managed qui utilise toujours un peu code natif dans leurs programmes.. Bien sur tout ca c'est valable si tu ne disposes pas du code source, sinon je pense que tu ne poserais meme pas la question.. : )
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
Une autre solution que je viens de découvrir mais pas encore testé, c'est l'utilitaire ILMerge qui comme son nom l'indique fusionne des assemblys .NET

Je suis sur que personne ne va lire ce message 5 jours après : )
Messages postés
65
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
1 août 2005
4
Hum..
Georgeduke a indiqué "j'ai développé un utilitaire"... du coup on peut supposer qu'il dispose du code source....
Si c'est le cas, et bien il suffit d'ajouter la dll en référence dans le projet (si tu utilises Visual Studion, clique droit sur le projet, puis "Add Reference") puis de recompiler...
Bon, sans code source la méthode ci-dessus s'impose !
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
Rassures moi Georgeduke, il s'agit bien d'une librarie dont tu ne disposes pas du code source !? Je viens de tester la methode que j'ai decrite plus haut, ca marche mais j'ai ramé.. en fait c'est un peu plus que quelques modifs qu'il faut apporter au code MSIL..
Messages postés
171
Date d'inscription
dimanche 6 février 2005
Statut
Membre
Dernière intervention
13 avril 2007

Ben disons, qu'entre-temps, j'ai retrouvé le code source de la dll que j'utilise dans mon prog (je devrais mieux ranger mes sources... ça devient n'importe quoi...)

Donc du coups, je n'avais plus le besoin décrit dans mon premier message.



Merci de votre aide en tout cas, car ça m'a permis de savoir qu'il
était possible de mettre une dll dans un exe par la méthode décrite par
Lutinor ; même si ça parait pas si évident que ça effectivement...



Cela dit, j'ai remarqué quelque chose d'étrange : Lorsque j'utilise mon
appli avec la dll en référence, l'exe me prend 3Mo de plus en
mémoire vive que si j'insère seulement le code source de la dll !



Quelqu'un a-t-il déjà remarqué ce phénomène ?
Messages postés
65
Date d'inscription
samedi 24 avril 2004
Statut
Membre
Dernière intervention
1 août 2005
4
Mais si.. Ya toujours des gens qui gens qui lisent les messages...
Ne serait-ce que ceux qui ont posté et coché l'option "M'envoyer un mail lorsqu'il y a une réponse à cette discussion." !

En tout cas je garde en mémoire ton utilitaire ! ... Ca peut être utile !
Merci !
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
43
Mais si, y'a toujours du monde qui vient regarder les postes
Et en plus, y'a une fonctionnalité pour voir les derniers messages postés...

Sinon à propos du sujet, si le but c'est d'avoir qu'un seul fichier pour faciliter le déploiement, on peut toujours créer un .msi qui va se charger de faire tout ce qui faut (avec le windows installer de visual studio donc.... bon ok, pour un petit programme ça peut être un peu lourd...)

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
29
Ah bha si y'a des lecteurs.. : )

En fussionnant des DLL dans un EXE y'a surement un petit gain de memoire à l'execution par contre je me demande si il y'a un gain en performance !?

Pour le gain de memoire je suppose que ca depend du cas de figure, par exemple si un EXE reference une DLL ( pas fusionnee ) mais que les fonctions de la librairie ne sont pas appelees ( pas systematiquement ), la librarie n'est pas chargee en memoire ?