[Mono-list] AppDomain and AppDomainSetup
kojoadams
kojoadams@hotmail.com
Tue, 14 Jan 2003 05:37:19 -0500
This is a multi-part message in MIME format.
------=_NextPart_000_0016_01C2BB8F.00FE52E0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hi all,
=20
I just made a test app with this layout
=20
\
Driver.exe
domain2
\
web.config
Domain2.exe
lib
\
Class.dll
with Domain2.exe references Class.dll.
the code for Driver.cs is something like:
using System;
public class Driver{
public static void Main(){
AppDomainSetup setup =3D new AppDomainSetup();
setup.ApplicationBase =3D =
AppDomain.CurrentDomain.BaseDirectory + "domain";
setup.ConfigurationFile =3D "web.config";
setup.PrivateBinPath =3D "lib";
AppDomain domain =3D AppDomain.CreateDomain("a domin", null, =
setup);
domain.ExecuteAssembly("domain2/Domain2.exe");
}
}
It fails because mono_assembly_load does not look in the lib =
subdirectory for Class.dll. Also, it does not change the change the =
ConfigurationFile to point to web.config.=20
kojo
------=_NextPart_000_0016_01C2BB8F.00FE52E0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1126" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Hi all,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> </FONT></DIV>
<DIV><FONT face=3DArial size=3D2> I just made a test =
app with this=20
layout</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> </FONT></DIV>
<DIV><FONT face=3DArial size=3D2> \</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =20
Driver.exe</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =
domain2</FONT></DIV>
<DIV><FONT face=3DArial=20
size=3D2> =
=20
\</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =20
=
web.config</FONT></DIV>
<DIV><FONT face=3DArial=20
size=3D2> &nbs=
p; =20
Domain2.exe</FONT></DIV>
<DIV><FONT face=3DArial=20
size=3D2> &nbs=
p; =20
lib</FONT></DIV>
<DIV><FONT face=3DArial=20
size=3D2> &nbs=
p; =20
\</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =20
=20
Class.dll</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> with Domain2.exe =
references=20
Class.dll.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> the code for =
Driver.cs is=20
something like:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> using =
System;</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> public class=20
Driver{</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =
public static=20
void Main(){</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =20
AppDomainSetup setup =3D new =
AppDomainSetup();</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =20
setup.ApplicationBase =3D =
AppDomain.CurrentDomain.BaseDirectory=20
+ "domain";</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =20
setup.ConfigurationFile =3D =
"web.config";</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =20
setup.PrivateBinPath =3D "lib";</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> =20
AppDomain domain =3D AppDomain.CreateDomain("a =
domin", null,=20
setup);</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> =20
=
domain.ExecuteAssembly("domain2/Domain2.exe");</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> =
}</FONT></DIV>
<DIV><FONT face=3DArial size=3D2> }</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2> It fails because=20
mono_assembly_load does not look in the lib subdirectory for Class.dll. =
Also, it=20
does not change the change the ConfigurationFile to point to web.config. =
</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>kojo</FONT></DIV></BODY></HTML>
------=_NextPart_000_0016_01C2BB8F.00FE52E0--