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

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

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

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 包创建库项目而不会失败?

这与 GitHub 问题中描述的问题完全相同,Nuget 包缺少您需要使用的两个 DLL lua52.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 位)目录到与您的 EXE 相同的目录中。

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