Mettre une dll dans l'exe d'une application ??

Résolu
georgeduke Messages postés 167 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 13 avril 2007 - 12 juin 2005 à 21:06
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 - 19 juin 2005 à 15:51
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
A voir également:

8 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
12 juin 2005 à 21:50
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.. : )
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
18 juin 2005 à 23:52
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 : )
1
Troborg Messages postés 65 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 1 août 2005 6
12 juin 2005 à 23:28
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 !
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
13 juin 2005 à 00:31
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..
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
georgeduke Messages postés 167 Date d'inscription dimanche 6 février 2005 Statut Membre Dernière intervention 13 avril 2007
13 juin 2005 à 07:38
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 ?
0
Troborg Messages postés 65 Date d'inscription samedi 24 avril 2004 Statut Membre Dernière intervention 1 août 2005 6
19 juin 2005 à 00:53
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 !
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
19 juin 2005 à 11:17
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
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
19 juin 2005 à 15:51
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 ?
0
Rejoignez-nous