Разрешение "require" при выполнении IronRuby из C # - PullRequest
0 голосов
/ 12 мая 2010

Я пытаюсь запустить скрипт IronRuby из C #:

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

foo.rb начинается с «require:»

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

Когда я пытаюсь это сделать, я получаю исключение, в котором говорится "нет такого файла для загрузки - бар" Файл "bar.rb" и каталог "bar" находятся в каталоге "ruby".

Итак, как мне выполнить скрипт ruby, который требует других файлов ruby? Я нацеливаюсь на .Net 3.5.

1 Ответ

4 голосов
/ 12 мая 2010

Используйте взамен ScriptEngine и добавьте каталог с файлами кодов рубинов в путь поиска:

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");
...