Hello.
I've got 2 .Net assemblies, for example, Foo.dll and Boo.dll
Boo contains
namespace BooModule
{
public class Boo
{
public string Speak()
{
return "Hello from class Boo";
}
}
public interface IFoo
{
string Comment();
}
}
Foo contains
namespace FooModule
{
public class Foo : IFoo
{
public string Comment()
{
return "Class Foo inhereted from IFoo";
}
}
}
In IronRuby console I try:
IronRuby 1.1.3.0 on .NET 4.0.30319.239
Copyright (c) Microsoft Corporation. All rights reserved.
>>> require 'D:\Programs\Univeris\FooBoo\bin\Boo'
=> true
>>> include BooModule
=> Object
>>> require 'D:\Programs\Univeris\FooBoo\bin\Foo'
=> true
>>> include FooModule
(ir):1:in `const_missing': uninitialized constant Object::FooModule
(NameError)
from (ir):1
If I inherit Foo : Boo I get the same error.
But if I move the declaration to the Foo propject, so it's like
namespace FooModule
{
public interface IFoo
{
string Comment();
}
public class Foo : IFoo
{
public string Comment()
{
return "Class Foo inhereted from IFoo";
}
}
}
Everything works just fine.
IronRuby 1.1.3.0 on .NET 4.0.30319.239
Copyright (c) Microsoft Corporation. All rights reserved.
>>> require 'D:\Programs\Univeris\FooBoo\bin\Foo'
=> true
>>> include FooModule
=> Object
>>> foo = Foo.new
=> FooModule.Foo
>>> foo.Comment
=> 'Class Foo inhereted from IFoo'
But I've got a really huge program system that consists of several big
dll libraries which I want to use via IronRuby and I just can't move all
those libraries into one dll file and into one namespace.
What am I doing wrong?
on 2012-08-14 07:41
on 2012-08-14 23:27
_______________________________________________ Ironruby-core mailing list Ironruby-core@rubyforge.org http://rubyforge.org/mailman/listinfo/ironruby-core
on 2012-08-15 07:22
Orion Edwards wrote in post #1072378: > I'm not sure exactly why this happens, I think it's something to do with > how the .NET runtime itself delay-loads assemblies and the rules it has > for looking for dependent dll's > There are three ways I know of to work around this: > 1. Use Dir.chdir to switch your working directory to > D:\Programs\Univeris\FooBoo\bin before you start loading the dll's > 2. Add to ruby's load path using $: << 'D:\Programs\Univeris\FooBoo\bin' > 3. Hook the CLR's AssemblyResolve event... this is a bit more complicated, > you can look up how this works on MSDN or I can tell you more if you'd > like > _______________________________________________ > Ironruby-core mailing list > Ironruby-core@rubyforge.org > http://rubyforge.org/mailman/listinfo/ironruby-core Thank you very much. Everything worked just fine.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.