eBiss 3

Hilfe & Dokumentation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Themen

howtos:schattenkopie_plugins

Schattenkopie Plugins

eBiss 3 erlaubt Plugin Dlls zur Laufzeit zu ersetzen. Dies Beschleunigt den Zyklus: DLL erstellen → alle Clients beenden → Service stoppen → DLL in Plugins kopieren → alles wieder starten. Nun kopiert man einfach die neue DLL ins eBiss Plugins Verzeichnis das aufgrund des Ladens der Assemblies aus einem anderen Verzeichnis nicht mehr gesperrt ist. Danach wählt man im eBiss Hauptmenü unter Erweiterte Aktionen den Eintrag Schattenkopie-Plugins aktivieren. Damit wird ab sofort im Client als auch im Service die neue Version verwendet.

Hinweis: das gilt nur für den Client, der den Befehl aufruft. Die anderen laufen weiterhin mit der alten Version weiter. Auch hat das keine Auswirkungen, wenn beispielsweise ein Mapping bereits geladen ist. Lädt man es jedoch neu sieht man nun den aktualisierten Datentyp.

Damit das Ganze funktioniert benötige man einige Einstellungen in den .config-Dateien von Server u. Client. Wichtig ist auch dass es nur funktionieren kann, wenn kein Prozess auf die Plugins zugreift. D.h. sowohl Server, als auch alle Clients müssen in der Config auf ShadowCopy Plugins eingestellt sein.

Empfohlene Konfiguration

Hinweis: Die Konfiguration kann mit dem eBiss Konfigurator vorgenommen werden.

eBiss.WinClient.exe.config

<add key="PluginManager.ShadowCopyDirectory" value="%TEMP%/__sc_eBiss/%eBiss.EbServerHost%_%eBiss.EbServerPort%" />

Damit bekommt der eBiss Client eine lokale Kopie der Plugins. Das Hinzufügen der Pfade für Host u. Port führt dazu dass diese Einstellung auch bei mehreren installierten eBiss Clients gut funktionieren sollten, so lange diese sich in Servername u. Port unterscheiden

eBiss.Service.exe.config

    <add key="PluginManager.ShadowCopyDirectory" value="./Plugins/__sc" />
    <add key="PluginManager.ShadowCopyArchiveDirectory" value="./Plugins/__sc/Archive" />

In dieser Konfiguration hält der Server die Schattenkopien direkt unter dem Plugins Verzeichnis.

Bei Angabe des ShadowCopyArchiveDirectory werden alte Versionen1) automatisch ins Archiv verschoben.2) Ist diese Option nicht gesetzt (wie beispielsweiser beim Client) werden veraltete Dlls3) im ShadowCopyDirectory gelöscht.

Hinweis für Entwickler: Wenn man im Debugging ist und der Prozess DLLs nachlädt, funktioniert die VS Anzeige der Variablenwerte nicht mehr.

1) , 3)
Das sind DLLs welche im ShadowVerzeichnis stehen, aber nicht mehr geladen werden.
2)
Damit wird eine Historie alter DLLs ermöglicht.
howtos/schattenkopie_plugins.txt · Zuletzt geändert: 2024/02/20 08:15 von 127.0.0.1