在 VS2010 中使用 IronRuby v1.1.x 创建 IronRuby 项目后,我几乎可以通过导入它们来使用 .NET 库。但实际上无法将ironruby 编译成exe/DLL。
我看到了构建选项,但无法从 IronRuby 项目构建任何 exe 或 DLL。请帮忙 !
最佳答案
您不能将 IronRuby 类编译为 .NET 程序集,然后从另一个程序集访问它们。
Preet 是正确的,你能得到的最接近的是将你的 IronRuby 脚本嵌入(比如)一个 C# 程序集中。从 C# 方面,可以实例化您的 Ruby 类。因此,给定以下 Ruby 类:
class HelloWorld
def say_hello
puts 'Hello'
end
end
您可以从资源文件加载它并从 C# 运行它:
using Microsoft.Scripting.Hosting;
using Microsoft.Scripting.Runtime;
using IronRuby;
var runtime = IronRuby.Ruby.CreateRuntime();
var engine = runtime.GetEngine("ruby");
var assembly = Assembly.GetExecutingAssembly();
var stream = assembly.GetManifestResourceStream("PathToResource.test.rb");
string code = new StreamReader(stream).ReadToEnd();
var scope = engine.CreateScope();
engine.Execute(code, scope);
dynamic helloWorldClass = engine.Runtime.Globals.GetVariable("HelloWorld");
dynamic ironRubyObject = engine.Operations.CreateInstance(helloWorldClass);
ironRubyObject.say_hello();
关于compiler-construction - 我可以将 VS2010 中的 IronRuby 项目编译成 DLL/exe 文件吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4191119/