Hi Curt, I finally got this working. Sadly, looking into the AssemblyResolve event within IronRuby always caused a stackoverflow, certain assemblies would keep attempting to load themselves. I was using AssemblyResolve and Assembly.LoadFrom and LoadPath, but nothing helped.
Last night, I looked into the AssemblyResolve event from within RubyContext and everything works just as expected. No errors, no stack overflows. I then used the GetSearchPaths() methods as possible locations to load assemblies from, this means I can add paths from IronRuby to use when loading assemblies via the $: variable. Appears to work well - bit annoying I can't submit the patch :P Thanks Ben On Mon, Jan 5, 2009 at 9:22 PM, Curt Hagenlocher <cu...@microsoft.com> wrote: > The IronPython assembly resolver is in PythonContext.cs. It's definitely > worth reviewing. > > -----Original Message----- > From: ironruby-core-boun...@rubyforge.org > [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Ben Hall > Sent: Monday, January 05, 2009 2:51 AM > To: ironruby-core@rubyforge.org > Subject: Re: [Ironruby-core] Loading Assemblies > > I'm back in the office so decided to give this another go. The > problem is, it appears to keep attempting to load a particular > assembly, resulting in a stackoverflowexception. The method > Assembly.load_from(path) never appears to return. > > I've tried to put a (if already saw then don't load) but I get an > error "Expected System.Reflection.Assembly, got System.Dynamic.Null" > This is because i do return nil, but i'm sure that's what I did in C#. > > This works in IronPython, but I can't find the code where its > implemented within the codebase :( > > Anyone for any ideas on this? > > Thanks > > Ben > > On Wed, Dec 10, 2008 at 3:30 PM, Curt Hagenlocher <cu...@microsoft.com> wrote: >> CurrentDomain is a static method, not a class -- so you want >> System::AppDomain.current_domain >> >> The AssemblyResolve event comes with its own set of odd side effects that >> may bite, but it is how IronPython deals with the issue. >> >> -----Original Message----- >> From: ironruby-core-boun...@rubyforge.org >> [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Ben Hall >> Sent: Wednesday, December 10, 2008 1:12 AM >> To: ironruby-core@rubyforge.org >> Subject: Re: [Ironruby-core] Loading Assemblies >> >> Thanks for the responses. >> >> Tomas is right, the appdomain didn't work (plus, it feels as dirty as >> copying all the assemblies). >> >> I wanted to hook into the AssemblyResolve event on the AppDomain, >> however it appears as if I don't have access to the appdomain! When I >> try System::AppDomain::CurrentDomain.methods, I get a NameError again. >> Disappointing :( >> >> I'll see if I can come up with some hacky way, its a shame that I >> can't manualy load in all the assemblies and you attempt to load them >> from the AppDomain first (then I would have a require 'sdk.rb' file >> with all the dependencies loaded in order) >> >> >> Thanks >> >> Ben >> >> On Tue, Dec 9, 2008 at 9:46 PM, Tomas Matousek >> <tomas.matou...@microsoft.com> wrote: >>> No. You need to set it in App.config. But I think the probe path could only >>> be a subdirectory of the app. That means a subdirectory of a path where >>> ir.exe is. >>> >>> We are working on improving assembly loading for IronRuby. >>> >>> Tomas >>> >>> -----Original Message----- >>> From: ironruby-core-boun...@rubyforge.org >>> [mailto:ironruby-core-boun...@rubyforge.org] On Behalf Of Thibaut Barrère >>> Sent: Tuesday, December 09, 2008 11:46 AM >>> To: ironruby-core@rubyforge.org >>> Subject: Re: [Ironruby-core] Loading Assemblies >>> >>>> require 'C:\Program Files\SDK\a.dll' >>>> require 'C:\Program Files\SDK\b.dll' >>>> require 'C:\Program Files\SDK\c.dll' >>> >>> Never tried that with IronRuby, but would the following work ? >>> >>> $LOAD_PATH << 'C:\Program Files\SDK\' >>> >>> -- Thibaut >>> >>>> >>>> B has a dependency on a. a loads file, but when loading b.dll an >>>> exception is thrown within LoadTypesFromAssembly because it cannot >>>> find a.dll. >>>> >>>> This is a serious problem, without copying all the assemblies into my >>>> IronRuby directory I'm not sure how to load the types and use our SDK? >>>> Installing into the GAC isn't an option. >>>> >>>> Please help! >>>> >>>> Thanks >>>> >>>> Ben >>>> _______________________________________________ >>>> Ironruby-core mailing list >>>> Ironruby-core@rubyforge.org >>>> http://rubyforge.org/mailman/listinfo/ironruby-core >>>> >>> _______________________________________________ >>> Ironruby-core mailing list >>> Ironruby-core@rubyforge.org >>> http://rubyforge.org/mailman/listinfo/ironruby-core >>> >>> _______________________________________________ >>> Ironruby-core mailing list >>> Ironruby-core@rubyforge.org >>> http://rubyforge.org/mailman/listinfo/ironruby-core >>> >> _______________________________________________ >> Ironruby-core mailing list >> Ironruby-core@rubyforge.org >> http://rubyforge.org/mailman/listinfo/ironruby-core >> >> _______________________________________________ >> Ironruby-core mailing list >> Ironruby-core@rubyforge.org >> http://rubyforge.org/mailman/listinfo/ironruby-core >> > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core > _______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core