无法加载DLL' lua52':找不到指定的模块

时间:2017-02-11 18:22:51

标签: dll console-application nlua

我遇到与此处描述的问题相同的问题:

https://github.com/NLua/NLua/issues/33

虽然我已按照说明创建控制台应用程序......

http://www.screencast.com/t/M12TqePQxW

...工作正常,当我创建一个库项目并从另一个项目(在本例中是一个Web API项目)引用它时,会发生以下错误:

Unable to load DLL 'lua52': The specified module could not be found.

在这一行:

using (var lua = new Lua())

如何使用NLua nuget包进行库项目而不会失败?

1 个答案:

答案 0 :(得分:2)

与GitHub问题中描述的问题完全相同,Nuget包缺少两个需要使用lua52.dll的DLL。一个小差异,当前包(版本1.3.2.1)包括使用VS2013构建的更新版本的lua52.dll。因此依赖于msvcr120.dll和msvp120.dll。

请注意,当Nuget更新您的项目时,这可能会在未来发生变化。

按原样,您需要下载并安装Visual C++ redistributable package for VS2013。运行vcredist_x64.exe和vcredist_x86.exe,以便项目可以在32位或64位模式下运行。

为避免在要部署程序的计算机上执行此操作,建议您从c:\ windows \ system32(64位)或c:\ windows \ syswow64(32)复制两个DLL。 -bit)目录与EXE相同的目录。

包装作者可以更好地将这个包装在一起。除了在包中包含DLL之外,更好的解决方案是使用/ MT选项重建lua52.dll,以便链接到这些依赖项。考虑单击New Issue button让他知道。