Für so einen Ansatz würde ich empfehlen eine Klasse zu erstellen, die das Kopieren der
DLL vornimmt (z.B. in den Temp-Ordner) und die
DLL dynamisch lädt.
Wird die Instanz dann ins Nirwana geschickt, dann kann auch die
DLL aus dem Temp Ordner gelöscht werden. Um ganz sicher zu gehen, dass die Kopie immer gelöscht wird, kann man. auch noch mit einem speziellen Copy-Befehl dafür sorgen, dass die Datei sich automatisch nach Prozessende von selber löscht.
Resultat:
Der Zugriff auf die
DLL Funktionen ist so einfach wie das Benutzen einer Klasse
Die zusätzlichen Daten liegen innerhalb der Klasseninstanz und können dort threadsafe bereitgestellt werden
Bei der Auslieferung des Programms nur eine
DLL-Datei und dadurch kein Versionsmischmasch möglich
Weitere Threads problemlos möglich