myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns
» Datenschutzerklärung
» Impressum

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Rund um die Programmierung » Gegen DLLs programmieren aber zur Laufzeit austauschen und löschen
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Gegen DLLs programmieren aber zur Laufzeit austauschen und löschen

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Quaneu Quaneu ist männlich
myCSharp.de-Mitglied

avatar-3126.jpg


Dabei seit: 22.10.2008
Beiträge: 672
Entwicklungsumgebung: VS 2017
Herkunft: Regensburg


Quaneu ist offline

Gegen DLLs programmieren aber zur Laufzeit austauschen und löschen

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

ich würde gerne wissen ob bzw. wie man folgendes Problem lösen könnte.

Ich habe eine exe (WPF) die eine DLL verwendet, diese kann vor der ersten Benutzung der DLL geupdatet werden, wenn die exe eine neuere Version findet. Die DLL wiederrum benutzt zwei weitere DLLs (eine ist Mixed Mode) die sie "entpackt" und verwendet (es wird dagegen implementiert).
Ich würde jedoch diese zwei DLLs wieder löschen wollen, wenn sie ihre Arbeit getan haben. Und hier finde ich einfach keinen Weg.

Ich habe es schon mit einer eigenen AppDomain probiert, da man Assemblies nicht einzeln entladen kann, jedoch kam es hier immer wieder zu Problemen... z.B. Application.Current ==null.

Gibt es hier auch eine andere Möglichkeit bzw. Lösungsansatz?


Schöne Grüße
Quaneu
28.03.2019 09:41 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.728
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Stichwort: Pluginsystem.

Und ja, nur über eine eigene AppDomain können DLLs entladen werden.
Wenn es hier ein Problem gibt, dann hast Du wahrscheinlich was falsch gemacht.

Warum Du "DLLs löschen willst, wenn sie ihre Arbeit erledigt haben" erschließt sich mir nicht.
28.03.2019 10:17 Beiträge des Benutzers | zu Buddylist hinzufügen
Quaneu Quaneu ist männlich
myCSharp.de-Mitglied

avatar-3126.jpg


Dabei seit: 22.10.2008
Beiträge: 672
Entwicklungsumgebung: VS 2017
Herkunft: Regensburg

Themenstarter Thema begonnen von Quaneu

Quaneu ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke für die Info.

Zitat:
Wenn es hier ein Problem gibt, dann hast Du wahrscheinlich was falsch gemacht.

Wie gesagt, dass Problem sind z.B. alle statischen Klassen, die von WPF initialisiert werden (z.B. Application.Current). Diese sind in der AppDomain alle nicht initialisiert.

Zitat:
Warum Du "DLLs löschen willst, wenn sie ihre Arbeit erledigt haben" erschließt sich mir nicht.

Da ich die DLLs entpacke wollte ich sie auch wieder aufräumen. D.h. der Ordner soll nach dem Durchlauf so sein wie davor.
28.03.2019 16:21 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
inflames2k inflames2k ist männlich
myCSharp.de-Poweruser/ Experte

avatar-3407.gif


Dabei seit: 03.01.2010
Beiträge: 2.193
Entwicklungsumgebung: Visual Studio 2010 Express


inflames2k ist online

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Was genau hast du denn vor? Ich verstehe dein Gesamtproblem nicht.

Was ist denn das für ein verquerer Anwendungsaufbau wenn zur Laufzeit irgendwelche DLL's generiert werden und nach Verwendung wieder verschwinden?
28.03.2019 16:45 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Quaneu Quaneu ist männlich
myCSharp.de-Mitglied

avatar-3126.jpg


Dabei seit: 22.10.2008
Beiträge: 672
Entwicklungsumgebung: VS 2017
Herkunft: Regensburg

Themenstarter Thema begonnen von Quaneu

Quaneu ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Es gibt eine DLL "X" in ihr sind zwei DLLs embedded. Wenn diese gebraucht werden, "entpacke" ich diese DLLs.
Dies wird deshalb gemacht da die "X" DLL beim Programmstart geupdatet werden kann und ich nicht n-DLLs kopieren will, sondern nur eine. Damit stelle ich auch sicher, dass das gesamte Packet zusammen passt.
28.03.2019 17:04 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
MrSparkle MrSparkle ist männlich
myCSharp.de-Team

avatar-2159.gif


Dabei seit: 16.05.2006
Beiträge: 5.147
Herkunft: Leipzig


MrSparkle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Merkwürdiger Ansatz. Dafür gibt es bereits fertige Lösungen, Stichwort Software-Updater.

Ansonsten:  [FAQ] Eigene Anwendung pluginfähig machen
28.03.2019 18:28 Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 12.728
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Würde den kompletten Ansatz verwerfen und etablierte Umsetzungen verfolgen.
Hört sich nach unwartbarer Magic an, die viel Potential für Puzzlearbeit und Fehleranfälligkeit von Haus aus mitliefert -> vermeidbar.
28.03.2019 20:01 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Monate.
Der letzte Beitrag ist älter als 2 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 20.06.2019 10:30