在使用LuaInterface在C# 4.0上时,出现了lua51.dll的FileNotFoundException,但它确实在那里。

我一直在几个需要脚本的C#应用程序中使用LuaInterface和Lua 5.1,尤其是一些游戏,IRC机器人和我最近决定重新启动的完整IRC客户端。

有一次,我切换到了.Net 4.0,不得不重新编译LuaInterface和Lua51才能让它们再次运行。据我所知,一切都很好。

然而,我最近买了一台新笔记本电脑,并尝试从中运行我的机器人。令我惊讶的是,当它尝试初始化Lua时,它中断了,引用lua51.dll上的FileNotFoundException,而它就在那里。我把它推迟到以后,继续重新安装一些东西,包括Visual C#和C ++ 2010 Express以及一些更新。第二天早上,我尝试重新启动聊天机器人,试图找出其中的问题-噢,它奏效了。出于某种奇怪的原因。

今天早些时候,我的一个朋友告诉我要完成我正在工作中的IRC客户端,该客户端非常广泛地使用Lua来添加功能和其他很酷的东西。我给了这位朋友一份检查最重要的问题的副本......他遇到了完全相同的错误。

现在,另一个人没有Visual Studio,我无法重现这个问题,而且一个人不可能期望列出上面列出的其他事物的用户安装它只是为了让它们运行-普通相对明智的用户只会耸耸肩,摆脱该程序。

那么我们怎么做呢,SO?

原文链接 https://stackoverflow.com/questions/7706784

点赞
stackoverflow用户32539
stackoverflow用户32539

你可以尝试使用 SysInternals 的Process Monitor来解决这类问题的根本原因。我经常使用它来查看程序在文件系统中查找 dll 的底层细节,这应该能告诉你为什么找不到它。

由于它会生成大量数据,所以你可能需要调整搜索和过滤选项,但这是我发现用于解决这类问题的最佳工具。

2011-10-16 17:10:20
stackoverflow用户17034
stackoverflow用户17034

引用 lua51.dllFileNotFoundException,它就在那里面。

这使得它很可能抱怨找不到 lua51.dll 需要的 DLL。一个非常可能的 DLL 是 msvcr100.dll,C/C++ 运行时支持库。当你安装 Visual Studio 时它会自动安装。你可以使用 /MT 选项重新构建 lua,这样 CRT 就被包含在 DLL 中了。或者让你的朋友下载并安装 这个

2011-10-17 10:24:18