[CSharp.net] Assembly.LoadFile und Abhängi gkeiten

Christoph Wille csharp.net at glengamoi.com
Tue, 09 Nov 2004 21:45:32 +0100


Ich müßte rumgraben gehen, aber in #develop machen wir es selber, und da 
geht es.

Chris

At 09:17 PM 11/9/2004, you wrote:
>Hi Christoph,
>
>danke für den Hinweis, leider habe ich aber immer noch keine Lösung...=
 
>Hast Du evtl. ein Beispiel oder noch eine Idee? Ich habe noch einige 
>Forschungen angestellt und weiß inzwischen, daß Assembly.LoadFile die=
 zu 
>ladende Assembly in die ausführende AppDomain lädt. Zur Lösung=
 erzeugt man 
>sich wohl eine neue Appdomain, setzt die Basispfade über das 
>AppdomainSetup-Objekt auf den Plugin- und den Ausführungsordner und 
>erzeugt die Objekte der fremden Assembly in der neuen AppDomain. Leider 
>wird dafür intern wohl die Remoting-Infrastruktur hergenommen, und 
>folgerichtig kommen dabei merkwürdige "Klasse ist nicht als=
 serialisierbar 
>markiert"-Fehler. Bei meinen eigenen Klassen kann ich für [Serializable]=
 
>sorgen, aber darüberhinaus?
>
>Gruß, Helge
>
>Christoph Wille wrote:
>
>>Es gibt einen Weg den Assembly Locator Mechanismus zu überschreiben.
>>
>>Chris
>>
>>At 08:07 AM 11/9/2004, you wrote:
>>
>>>ich habe ein Problem mit dem Laden von DLLs als Plugins, bzw. deren 
>>>Abhängigkeiten. In einem definierten Unterordner meiner Anwendung=
 liegen 
>>>Plugin-DLLs nach einem bestimmten Namensschema, die ich zum Start per 
>>>Assembly.LoadFile und, sofern erfolgreich, Activator.CreateInstance zum=
 
>>>Einsatz bringe. Soweit, sogut, aber zwei von den Dingern haben externe 
>>>Abhängigkeiten, und dort scheitert das Laden - der Plugin-Ordner wird=
 
>>>nicht durchsucht. Lege ich die referenzierte Library aber in den 
>>>Ausführungsordner meines Ursprungsprogramms statt meines Plugins, 
>>>funktioniert es (natürlich). Gibt es eine programmatische Lösung fü=
r 
>>>dieses Problem (außer GAC-registrieren...)?