Wie bettet man DLL-Bibliotheken in eine kompilierte C#-EXE-Datei ein?
Hallo zusammen! Ich schreibe eine kleine Anwendung in C# (Windows Forms), die eine Drittanbieter-Bibliothek verwendet – zum Beispiel Newtonsoft.Json oder iTextSharp. Wenn ich das Projekt in Visual Studio erstelle, erscheinen im Ordner Debug/Release meine .exe-Datei und eine Menge .dll-Dateien. Das ist für Benutzer umständlich: Sie müssen darauf achten, dass alle Bibliotheken neben der exe-Datei liegen, sonst startet das Programm nicht.
Ich möchte erreichen, dass alle DLLs direkt in eine einzige .exe-Datei eingebettet werden. Das heißt, der Benutzer erhält eine einzige Datei, führt sie aus – und alles funktioniert ohne zusätzliche Manipulationen.
Ich habe versucht zu googeln und bin auf ILMerge gestoßen, aber es ist veraltet und unterstützt kein .NET Core / .NET 5+. Ich habe auch von Costura.Fody gehört, bin mir aber nicht sicher, wie man es richtig konfiguriert. Gibt es eine moderne Methode, dies in .NET 6/7/8 zu tun? Oder m