Laden...

DLL zur Laufzeit laden und ausführen

Erstellt von oehrle vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.513 Views
O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 4 Jahren
DLL zur Laufzeit laden und ausführen

Hallo, in einer meiner Applikationen (die eine ist sehr umfangreich), muss eine neue Anwendung integriert werden.
Ich habe diese Anwendung als eigenes Projekt erstellt (Klassenbibliothek). Diese neue Anwendung kann sich von Zeit zu Zeit den Anforderungen entsprechen ändern, und ich würde das gerne so gestalten, dass ich in der Hauptanwendung diese DLL zur Laufzeit aus einem bestimmten Verzeichnis laden kann. Das hätte den Vorteil, dass ich diese DLL dann gegen neuere austasuchen könnte, ohne die Hauptanwendung neu veröffentlichen zu müssen (ClickOnce).
Ist das so der richtige Weg mit der DLL, oder wie würde man so etwas machen?

Ich denke dann weiter an Assembly.LoadFrom(meineDLL.DLL)

Dann die Hauptmethode aufrufen, in der alle Untermethoden abgearbeitet werden.
Würde das aus eurer Sicht so funktionieren?

Noch etwas, die Konfigurationsdatei für diese DLL kann dann genausso geladen und ausgewertet werden?

Für eine Info wäre ich dankbar, bisher waren meine imtegrieren Anwendungen immer immer als Projekte eingebunden.

16.807 Beiträge seit 2008
vor 4 Jahren

Hallo, in einer meiner Applikationen (die eine ist sehr umfangreich), muss eine neue Anwendung integriert werden.

Umfangreich ist relativ 😉

und ich würde das gerne so gestalten, dass ich in der Hauptanwendung diese DLL zur Laufzeit aus einem bestimmten Verzeichnis laden kann.

Also ein Pluginsystem.

Das hätte den Vorteil, dass ich diese DLL dann gegen neuere austasuchen könnte, ohne die Hauptanwendung neu veröffentlichen zu müssen (ClickOnce).

Das hört sich nicht so an, dass Du da einen wirklichen CI/CD Prozess dran hängen hast...?

Ich denke dann weiter an Assembly.LoadFrom(meineDLL.DLL)

So funktionieren im Prinzip Plugins in .NET Framework.
In .NET Core gibt es keine AppDomains mehr, daher ist das in dem Fall nicht ganz sooo einfach.

[FAQ] Eigene Anwendung pluginfähig machen

O
oehrle Themenstarter:in
461 Beiträge seit 2009
vor 4 Jahren
Gelöst - DLL extern aus Verzeichnis laden

Hallo, für alle die etwas einfaches brauche. Habe hier was passendes gefunden (Ende vom Beitrag).

Link zum Artikel

Bei mir ist das so, dass ich eine Klassenbibliothek erstellt habe, bei der mehrere Klassen vorhanden sind um die Teilaufgaben zu strukturieren. Die Abarbeitung der Schritte (Methoden) sind in einer Hauptmethode untergebracht, die ich dann Aufrufen (so wie am Ende in diesem Artikel).
Und shön ist, das auch die Konfigurationsdatei in diesem DLL-Verzeichnis liegt und ausgewertet werden kann.

16.807 Beiträge seit 2008
vor 4 Jahren

.. und beachtet, dass der Artikel über 10 Jahre alt ist und man das in der Form so nicht mehr unbedingt machen würde/sollte.
Da ist das im Artikel genannte MEF der deutlich bessere, typisierte Weg.