AppDomain / ShadowCopy

05/08/2008 - 17:52 von Thomas Kehl | Report spam
Hallo.

Ich versuche über eine neue AppDomain mittels ShadowCopy Assemblies zu
laden.
Dies mache ich folgendermassen:


AppDomainSetup info = new AppDomainSetup();
info.ShadowCopyFiles = "true";
AppDomain pplDomain = AppDomain.CreateDomain("PPLDomain",
null, info);
Assembly dll =
PPLDomain.Load("C:\\PPDev\\PP.NET\\PPKernel\\PP\\Application\\bin\\PPL.System.SYS.Vulcan.dll");

Nun bekomme ich bei der letzten Zeile folgende Fehlermeldung:
Die Datei oder Assembly
C:\\PPDev\\PP.NET\\PPKernel\\PP\\Application\\bin\\PPL.System.SYS.Vulcan.dll
oder eine Abhàngigkeit davon wurde nicht gefunden. Der angegebene
Assemblyname oder die Codebasis ist ungültig. (Ausnahme von HRESULT:
0x80131047)

Wenn ich die Assembly folgendermassen lade, funktionerts einwandfrei.

Assembly dll = Assembly.LoadFrom(sFile);

Kann mir evt. jemand einen Tipp geben, wieso die Sache mit der AppDomain
nicht funktioniert? - Ich möchte ShadowCopy benutzen, damit ich die
Assemblies zur Laufzeit austauschen kann.
Besten Dank für eure Hilfe.

Grüsse, Thomas
 

Lesen sie die antworten

#1 Frank Dzaebel
06/08/2008 - 14:29 | Warnen spam
Hallo Thomas,

Ich versuche über eine neue AppDomain mittels ShadowCopy Assemblies zu
laden. Dies mache ich folgendermassen ...
Nun bekomme ich bei der letzten Zeile folgende Fehlermeldung:
Wenn ich die Assembly folgendermassen lade, funktionerts einwandfrei.



Ich hatte letztens gerade entsprechende Informationen gepostet.
http://groups.google.com/group/micr...5ce51a586e

Im FusionLog kannst Du normal genau sehen, welche
Pfade durchsucht werden:

//
catch (FileNotFoundException fnf)
{
MessageBox.Show(fnf.Message + "" +
fnf.FusionLog); return;
}

Für Dich wichtig einmal zu lesen:

[Erstellen von Schattenkopien von Assemblys]
http://msdn.microsoft.com/de-de/lib...04279.aspx

Dort speziell:

"Es können nur Schattenkopien der Assemblys erstellt werden,
die in dem bei der Konfiguration der Anwendungsdomàne durch
die ApplicationBase-Eigenschaft und die PrivateBinPath-
Eigenschaft festgelegten Anwendungsverzeichnis oder in
dessen Unterverzeichnissen gespeichert sind. Von Assemblys,
die im globalen Assemblycache gespeichert sind, werden keine
Schattenkopien erstellt."


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen