一些用户(我会说它是~10%)在尝试运行用C#(.NET 4.0)编写的应用程序时遇到问题 - 在应用程序启动时出现这样的错误:
Could not load file or assembly 'lua51.dll'. Such module could not be found.
- 这是翻译,所以在ENG版本中它可能是相似的。
问题是大多数用户都没有遇到此问题,并且程序的目录中存在lua51.dll。这个错误的原因是什么?
我在我的项目中设置了Platform:x86 - > bulid选项,发生错误。
答案 0 :(得分:9)
这是一个常见的问题,太多的程序员只是复制DLL而没有意识到lua51.dll本身也需要安装依赖的DLL。来自Windows的错误消息令人遗憾无益,它没有报告问题的真正原因。 Applciation日志中的事件确实存在,但没有足够的用户查看它。
不幸的是,这并没有经常出错,很多机器已经有了可用的依赖DLL。然而这是一个意外,你不能依赖它。那些可能性也越来越低,依赖性越来越老。
您需要阅读Install Notes以了解所需内容:
Lua for Windows及其模块都依赖于MSVC ++ 2005运行时库。如果您的计算机上没有安装运行时,Lua for Windows安装将自动下载此运行时并为您安装。运行时包含在文件vcredist_x86.exe
中
所以要么依赖Lua安装程序,要么自己安装vcredist。