Консольный скрипт NLua в приложении C#: оператор импорта не работает
Я пытаюсь внедрить консольный скрипт NLua, работающий в потоке, в моем программном обеспечении C#. Мой код читает строки из консоли и добавляет их, пока не будет прочитано ":quit". Затем он выполняет сценарий. Затем я ловлю любое исключение и печатаю его на консоли. Вот пример:
x=4
:quit
print(4)
:quit
4
print(math.sin(x))
:quit
-0.75680249530793
import ('Microsoft.Xna.Framework')
:quit
[string "chunk"]:1: attempt to call global 'import' (a nil value)
Кажется, у меня есть проблема с оператором импорта. Вот код C#:
public void Run()
{
NLua.Lua lua = new Lua();
lua["Map"] = map;
lua.LoadCLRPackage();
lua.DoString(@"
import ('Game1', 'Game1')
import ('System.Web')
import ('Microsoft.Xna.Framework;')");
Quit = false;
StringBuilder stream = new StringBuilder();
string line;
while(!Quit)
{
line = Console.ReadLine();
while (line != ":quit")
{
Thread.Sleep(1000);
stream.AppendLine(line);
line = Console.ReadLine();
}
lock (mutex)
{
try
{
state.DoString(stream.ToString());
stream.Clear();
}
catch (NLua.Exceptions.LuaException e)
{
Console.WriteLine(e.Message);
}
}
}
}
Я использую Visual Studio 2017, установленный NLua для диспетчера пакетов NuGet. У кого-нибудь есть идея, почему я не могу использовать оператор импорта?