【问题标题】:Resolving "require"s when executing IronRuby from C#从 C# 执行 IronRuby 时解决“require”问题
【发布时间】:2010-05-12 17:52:26
【问题描述】:

我正在尝试从 C# 运行 IronRuby 脚本:

var runtime = IronRuby.Ruby.CreateRuntime();                  
runtime.ExecuteFile("ruby/foo.rb");

foo.rb 以“require:”开头

#!/usr/bin/env ruby
require 'bar'

当我尝试这个时,我得到一个异常,指出“没有要加载的文件--bar”。文件“bar.rb”和目录“bar”都存在于“ruby”目录中。

那么,如何执行需要其他 ruby​​ 文件的 ruby​​ 脚本?我的目标是 .Net 3.5。

【问题讨论】:

    标签: c# ironruby


    【解决方案1】:

    改用 ScriptEngine 并将您的 ruby​​ 代码文件目录添加到搜索路径:

    var engine = IronRuby.Ruby.CreateEngine();
    
    var paths = engine.GetSearchPaths().ToList();
    paths.Add(@"C:\Path\To\My\Ruby\Files"); // Add the path to your ruby code files
    engine.SetSearchPaths(paths);
    
    engine.ExecuteFile("ruby/foo.rb");
    

    【讨论】:

    • @Shay, @James:当相关文件是标准 Ruby 库时,您建议如何解决问题?执行require 'net/http' 时出现上述错误。
    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多