Разрешение "require" при выполнении IronRuby из C#

Я пытаюсь запустить скрипт 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 ответ

Решение

Вместо этого используйте 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");
Другие вопросы по тегам