Kompilieren von mehreren Projektdateien in eine EXE?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Zwei Wege:

ILMerge - damit kannst Du ein PostBuildEvent schreiben oder MSBuild-Target schreiben, was das tut. Ist aber alt und nicht mehr der aktuell beste Weg.

Wenn Du .NET 5 oder Neuer nutzt, ist das fertig eingebaut und kann genauer eingestellt werden:
Single file application - .NET | Microsoft Docs

Bedenke aber, dass es nie einfach nur eine Exe ist. Dazu kommt noch das .NET-Framework (kannst Du dir auch aussuchen, wo das liegen soll) und andere Dateien, die keine Binaries sind. Irgendwie geht das zwar alles, aber die Frage ist: Lohnt sich das?

Meiner Erfahrung nach lohnt das nicht. Außerdem sind alle Programme mehr und mehr darauf ausgelegt, mit zig Einzel-Dateien zu arbeiten, das ganze .NET-Framework ist eine große Sammlung von NuGet-Packages und die werden alle einzeln ins Ziel-Verzeichnis gelegt.

Belass es einfach so wie es ist und wenn Du es dann an jemanden schicken möchtest, leg es in einen Unterordner und ein Skript daneben, was die Exe startet - geht auch als PostBuildEvent. Oder Du legst generell alle Abhängigkeiten in einen Unterordner, aber das ist etwas aufwändiger, als manuell in einen Unterordner kopieren.

Woher ich das weiß:Berufserfahrung