Avatar ·

Comment intégrer des bibliothèques DLL dans un fichier EXE compilé C# ?

Bonjour à tous ! Je développe une petite application en C# (Windows Forms) qui utilise une bibliothèque tierce — par exemple, Newtonsoft.Json ou iTextSharp. Quand je compile le projet dans Visual Studio, dans le dossier Debug/Release apparaissent mon fichier .exe et un tas de fichiers .dll. C'est gênant pour les utilisateurs : ils doivent s'assurer que toutes les bibliothèques se trouvent à côté de l'exe, sinon le programme ne démarre pas. Je voudrais faire en sorte que toutes les DLL soient intégrées directement à l'intérieur d'un seul fichier .exe. Ainsi, l'utilisateur reçoit un seul fichier, l'exécute — et tout fonctionne sans manipulations supplémentaires. J'ai essayé de chercher sur Google, je suis tombé sur ILMerge, mais il est obsolète et ne supporte pas .NET Core / .NET 5+. J'ai aussi entendu parler de Costura.Fody, mais je ne suis pas sûr de comment le configurer correctement. Existe-t-il une méthode moderne pour le faire dans .NET 6/7/8 ? Ou peut-être peut-on charger manuellement les DLL via AssemblyResolve ? J'aimerais voir un exemple fonctionnel, de préférence avec du code. Voici un exemple de la structure de mon projet (application console .NET 6) : ```