2013-05-19 101 views
5

某些用户(我会说这是〜10%)在尝试运行用C#编写的应用程序时遇到问题(.NET 4.0) - 应用程序启动时出现此类错误发生:C#应用程序启动时出错 - 无法加载文件或程序集

Could not load file or assembly 'lua51.dll'. Such module could not be found. 

- 这是翻译,所以在ENG版本中它可能是类似的。

问题是,大多数用户不会遇到此问题,并且lua51.dll存在于程序目录中。可能是这个错误的原因是什么?

我在我的project-> bulid选项中设置了Platform:x86,发生错误。

+5

有问题的人有可能是有64位机器的人吗?当从64位程序集引用时,Lua51.dll是有问题的。 – KingCronus

+0

请参阅:http://stackoverflow.com/questions/6856826/c-sharp-external-library-lua-call-problem/6901114#6901114 – KingCronus

+0

我已经在我的项目中设置了Platform:x86-> bulid选项。 – user1792042

回答

9

这是一个常见问题,太多程序员只是复制DLL而没有意识到lua51.dll本身也需要安装依赖的dll。来自Windows的错误消息令人伤心无益,它并没有报告问题的真正原因。 Applciation日志中有一个事件,但没有足够的用户查看它。

不幸的是,这经常不会出错,很多机器已经有可用的依赖DLL。然而,这是一个意外,你不能依赖它。这些可能性越来越低,依赖性越来越大。

你需要阅读Install Notes知道需要什么:

的Lua为Windows和它的模块都依赖于MSVC++ 2005运行库。如果您没有在您的计算机上安装运行时,Lua for Windows安装将自动下载此运行时并为您安装。运行时间包含在文件中vcredist_x86.exe

所以要么依靠Lua安装程序,要么自己安装vcredist。

+0

谢谢,我会看看它 – user1792042

相关问题