Lader einer Assembly in neue AppDomain

11/01/2010 - 09:55 von Thomas Kehl | Report spam
Hallo zusammen.

Ich habe eine AppDomain erstellt. In dieser möchte ich nun eine
Assembly laden. Dies funktioniert grundsàtzlich auch, wenn die
abhàngige Assembly im gleichen Verzeichnis ist. Dies soll aber nicht
der Fall sein. Aus diesem Grunde versuche ich, vor dem Laden der zu
verwendenden Assembly in die neue AppDomain, die abhàngige Assembly
"von Hand" zu laden. Folgenden Code verwende ich dazu:

var ads = new AppDomainSetup
{
ApplicationBase = assemblyDirectory + "\\" +
di.Name,
DisallowBindingRedirects = false,
DisallowCodeDownload = true,
ConfigurationFile AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
};

AppDomain pluginDomain = AppDomain.CreateDomain("pp service plugin
domain - " + name, null, ads);
var bytes = File.ReadAllBytes(path + "pp.util.dll");
pluginDomain.Load(bytes);

var plugin (T)pluginDomain.CreateInstanceAndUnwrap("pp.service.plugin." +
name,
"pp.service.plugin."
+ name + "." + name.Substring(0, 1).ToUpper() + name.Substring(1));

Das Problem ist nun, dass bei pluginDomain.CreateInstanceAndUnwrap()
eine Exception geworfen wird, die aussagt, dass pp.util nicht geladen
werden konnte. Aber ich lade diese Assembly ja zuvor mittels
pluginDomain.Load().
Kann mir jemand weiterhelfen? - Der Grund dafür ist, dass ich es
vermeiden möchte, dass ich die Assembly pp.util.dll redundant an zwei
Stellen haben muss.

Herzlichen Dank für eure Hilfe.

Viele Grüsse, Thomas
 

Lesen sie die antworten

#1 Joachim Fuchs
11/01/2010 - 11:35 | Warnen spam
Hallo Thomas,

warum làdst Du die Assembly nicht einfach mit Assembly.LoadFrom(dateipfad)?

Gruß
Joachim

Dr. Joachim Fuchs - Autor - Dozent - Softwarearchitekt
http://www.fuechse-online.de/beruflich/index.html

Ähnliche fragen