使用NLua,"需要"关键字工作

时间:2016-10-30 21:10:05

标签: .net lua nlua

我有一些包含我的业务逻辑的Lua代码,我想使用NLua在.NET中运行。

我的一些lua文件目前使用"要求"关键字以便引用其他文件中的函数。现在,如果我使用例如运行代码,这可以正常工作ZeroBrane工作室。但是,一旦我使用" DoFile"要将代码加载到NLua中,我得到一些"模块未找到"错误。

我的问题是;在NLua中运行代码时,我可以使用" require"的概念吗?如果没有,那么在对文件运行DoFile之前是否需要删除这些行(当然要确保以正确的顺序运行文件)?

更新:我想也许我只需要将我的Lua文件夹添加到package.path。我通过做Arrays.compare(arr1,arr2)解决了这个"最佳实践"?

1 个答案:

答案 0 :(得分:1)

搜索开始的根目录位置是可执行文件运行的位置,而不是运行DoString的文件所在的位置。

以下是使用heaps.lua作为示例文件的NLua所需的位置示例:

  

没有文件'./heaps.lua'
      没有文件'./heaps/init.lua'
      没有文件'./lua/heaps.lua'

示例:

可执行路径C:\foo\bar.exe

脚本路径C:\baz\qux.lua

qux.lua需要heaps,NLua将在C:\foo\中搜索堆,而不会搜索C:\baz\