[IronPython] Application Domains and IronPython

Michael Foord fuzzyman at voidspace.org.uk
Wed Apr 18 00:34:46 CEST 2007


Dino Viehland wrote:
> For the call to .Load I think you'll want to provide "goodbye" instead of the fully qualified path.
>
> If that still doesn't work there's a tool called fuslogvw.exe which is part of the .NET Framework SDK (on my machine it's in %ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin but if you don't have VS and instead just have the SDK I believe it ends up in %ProgramFiles%\Microsoft.NET\SDK\...).  Load that up, turn on the logging options, and then re-run.  Refresh in Fuslogvw and you'll see a list of places where it tried to load your assembly from and where it's not finding them.
>   
Thanks for the reply Dino - and nice work on IP 1.1. :-)

I'm sure I tried just 'goodbye', but that tool for tracing what is going 
on sounds like a great idea.

Thanks

Michael Foord
http://www.voidspace.org.uk/ironpython/index.shtml


> -----Original Message-----
> From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Michael Foord
> Sent: Monday, April 16, 2007 3:12 PM
> To: Discussion of IronPython
> Subject: [IronPython] Application Domains and IronPython
>
> Hello all,
>
> I'm trying to experiment with using AppDomains from IronPython - and not
> getting very far.
>
> I've created a simple assembly in C#, containing the following :
>
> using System;
> namespace goodbye
> {
> public class GoodbyeWorld
>
> {
> public void test()
>
> {
> Console.WriteLine("Goodbye World!");
> }
> }
> }
>
>
> This is saved as 'goodbye.dll' and I can use it fine from IronPython.
>
> The initial code to create the AppDomain is as follows:
>
> import clr
>
> from System import AppDomain, AppDomainSetup, MarshalByRefObject
> from System.Environment import CurrentDirectory
> from System.IO import Path, Directory
> from System.Reflection import Assembly
>
>
> ads = AppDomainSetup()
> ads.ApplicationBase = Directory.GetCurrentDirectory()
> ads.DisallowBindingRedirects = False
> ads.DisallowCodeDownload = True
> ads.ConfigurationFile =
> AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
>
>
> appDomain = AppDomain.CreateDomain("newAppDomain", None, ads)
>
>
> asmPath =  Path.Combine(Directory.GetCurrentDirectory(), "goodbye.dll")
>
> So far so good.
>
> If I try *either* of the following lines to *use* the appdomain, then it
> fails:
>
> testClass = appDomain.CreateInstanceAndUnwrap(asmPath,
>                                               "goodbye.GoodbyeWorld")
>
> or:
>
> appDomain.Load(asmPath)
>
>
> The error is:
>
>
> Traceback (most recent call last):
>   File C:\Python Projects\modules in progress\ironpython\appDomain.py,
> line 22,
> in Initialize
>   File , line 0, in Load##97
>   File mscorlib, line unknown, in Load
> IOError: Could not load file or assembly 'C:\\Python Projects\\modules
> in progre
> ss\\ironpython\\goodbye.dll' or one of its dependencies. The given
> assembly name
>  or codebase was invalid. (Exception from HRESULT: 0x80131047)
>
> I've also tried loading the assembly and using the assembly name, which
> is obviously wrong because it then fails to find the assembly.
>
> Anyone got any clues as to what I am doing wrong ?
>
> All the best,
>
>
> Fuzzyman
> http://www.voidspace.org.uk/ironpython/index.shtml
>
>
> _______________________________________________
> users mailing list
> users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> _______________________________________________
> users mailing list
> users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>   




More information about the Ironpython-users mailing list