6 votes

Est-il possible de fusionner une DLL dans un EXE .NET ?

J'ai une DLL qui stocke des classes communes à deux applications. J'aimerais que mon application se limite à un seul fichier EXE et je voudrais voir si je peux intégrer cette DLL dans mon EXE principal.

Comment puis-je intégrer la DLL externe dans mon application ? (si possible)

15voto

Pauli Østerø Points 4708

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=22914587-b4ad-4eae-87cf-b14ae6a939b0&displaylang=en

ILMerge est un utilitaire permettant de fusionner plusieurs assemblages .NET en un seul assemblage .NET. Il fonctionne aussi bien sur les exécutables que sur les dlls. Il est livré avec plusieurs options pour contrôler le traitement et le format de la sortie, voir la documentation d'accompagnement pour plus de détails.

9voto

Tim Lloyd Points 23571

Une alternative à ILMerge est d'incorporer les assemblages dépendants dans l'exécutable en tant que ressources intégrées et de tirer parti de la fonction d'intégration d'ILMerge. résolution de l'assemblée pour les charger en tant que flux de ressources. Un exemple de la façon de procéder peut être trouvé ici :

http://blog.magenic.com/blogs/brante/archive/2008/04/14/Embedded-Assembly-Linker.aspx

J'utilise moi-même ce modèle qui fonctionne bien. ILMerge a parfois des problèmes, donc votre expérience peut varier.

1voto

scaryman Points 1180

Eazfuscator.NET est un outil merveilleux qui permet à la fois la fusion ET l'incorporation de dll, ainsi que ses fonctions normales d'obfuscation. Il permet également d'optimiser le code obfusqué. Au lieu de s'embêter avec ilmerge, il suffit d'ajouter une annotation de classe et eazfuscator fera tout pour vous. C'est merveilleux !

[assembly: System.Reflection.Obfuscation(Feature = "encrypt symbol names with password PAS$", Exclude = false)]
[assembly: System.Reflection.Obfuscation(Feature = "embed nLog.dll", Exclude = false)]
public class MyClass {
  //blah
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X