0

我正在尝试让 Lua 系统在我的 .NET 4.0 应用程序中运行。我使用 LuaInterface 作为 Lua 的包装器,它是在 .NET 4.0 下编译的

在安装了 VS2010 的开发计算机上运行 Lua 脚本时,该应用程序运行良好。但是在另一台计算机上运行它时,我得到了 FileNotFoundException。

System.IO.FileNotFoundException: Could not load file or assembly 'lua51.dll' or one of its dependencies. The specified module could not be found.

lua51.dll 与应用程序位于同一文件夹中,因此我看不出有任何问题。所以这一定意味着它找不到 lua51.dll 依赖的文件。这就是问题所在。

我需要让我的用户安装哪些文件才能使其正常工作?

4

3 回答 3

0

您可以使用 Fusion Binding 日志记录对此进行分析。这可以在命令行中完成,记录到文件中,或者通过 GUI 界面 (FUSLOGVW.exe) 查看。从这里开始,看看这是否能让你开始。

于 2011-10-19T07:08:34.163 回答
0

如果您的开发系统和存在问题的系统不是相同的架构(32 位 -> 64 位),则可能会导致您出现问题。我在C# external library (Lua) call question 回答了一个与此类似的问题

“我在 .NET、LuaInterface 和 Lua5.1 在 64 位机器上交互时遇到了很多问题。Lua5.1 只能编译 32 位,这需要您(我相信)将 LuaInterface 项目构建为 32 位尝试在您的 .NET 项目中将“项目 -> 属性 -> 构建 -> 平台目标”更改为“x86”。

于 2011-10-27T19:07:50.007 回答
0

我有同样的问题。

我通过安装 microsoft 的 vcredist_x86.exe(Visual C++ 2010 Redistributable Package)解决了这个问题,它将所需的 DLL 添加到系统中。

我尝试使用 /MT 选项编译 lua51.dll,但此选项与 /CLR 选项不兼容,这是必需的。然后我尝试安装 redist 包 2008(就像 LuaInterface 网站说的那样),它不起作用(也许我自己用 VS 2010 编译了 lua - 我不知道了)。2010版解决了我的问题。

于 2012-10-22T11:18:00.783 回答