Разрешение "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");