Prinzipiell ist dieses Thema gut dokumentiert in der Dokumentation von Microsoft.
Viele Dinge Deiner Fragen kann man aber nicht pauschal beantworten, weil diese von der Applikation und den Anforderungen unterliegen:
Assemblys in .NET
[FAQ] Ordnerstruktur für .NET Projekte
Application publishing - .NET
Single file deployment and executable
Trim self-contained applications - .NET
Wie man Architektur angeht ist abgesehen von Best Practises einfach Erfahrungssache.
Aber Allgemein:
Zitat |
Bei keiner Anwendung habe ich bislang eine solche Struktur mit solchen Dateien gesehen. |
Das ist bei jeder .NET Anwendung so (und übrigens auch bei den meisten Java Anwendungen, weil das Grundprinzip unter der Haube ähnlich funktioniert).
Zitat |
Normal gibt es Unterordner, wo das alles etwas aufgeräumt ist.
|
Nö, nicht bei Eager Dependency Loading.
Zitat |
Jetzt würde ich die .dll-Dateien in einen eigenen Ordner packen wollen. |
Warum, was hast Du davon? Es ändert sich für dich nichts, ausser die Optik, wenn jemand in den Ordner schaut.
Beschreib mal Deine Anforderung, dann kann man Dir Lösungen anbieten. "Ich will eine andere Ordnerstruktur" ist halt keine Anforderung, die mit einfachen Mitteln in .NET umsetzbar ist.
Dass Du nun implizit ausdrückst, dass die Standard-Output Struktur nicht vernünftig sei....
Und das Thema im Allgemeinen geht man in der .NET Welt völlig anders an, zB mit Trimming und Merging.
App Trimming in .NET 5
Für Legacy Loading gibts Assembly Bindings, die aus einem private Path geladen werden können.
Gleich aber die Info, dass das in der neuen .NET Welt nicht funktioniert, weil es keine App Domain mehr gibt.
Ich behaupte mal ins Feld, dass Du keine Applikation schreibst, die von einer eigenen Struktur profitieren würde.
Das Customizing wird Dich eher viel Zeit kosten - bei exakt null Nutzen.
Größere Anwendungen haben entsprechende Mechanismen, zB Plugin Frameworks, die das einem alles abnehmen.
Für die meisten Anwendungen aber Overkill.